use chia_streamable_macro::streamable;
use crate::Bytes32;
use crate::ProofOfSpace;
use crate::VDFInfo;
use crate::VDFProof;
use chia_bls::G2Element;
#[streamable]
pub struct ChallengeBlockInfo {
proof_of_space: ProofOfSpace,
challenge_chain_sp_vdf: Option<VDFInfo>, challenge_chain_sp_signature: G2Element,
challenge_chain_ip_vdf: VDFInfo,
}
#[streamable]
pub struct ChallengeChainSubSlot {
challenge_chain_end_of_slot_vdf: VDFInfo,
infused_challenge_chain_sub_slot_hash: Option<Bytes32>, subepoch_summary_hash: Option<Bytes32>, new_sub_slot_iters: Option<u64>, new_difficulty: Option<u64>, }
#[streamable]
pub struct InfusedChallengeChainSubSlot {
infused_challenge_chain_end_of_slot_vdf: VDFInfo,
}
#[streamable]
pub struct RewardChainSubSlot {
end_of_slot_vdf: VDFInfo,
challenge_chain_sub_slot_hash: Bytes32,
infused_challenge_chain_sub_slot_hash: Option<Bytes32>,
deficit: u8, }
#[streamable]
pub struct SubSlotProofs {
challenge_chain_slot_proof: VDFProof,
infused_challenge_chain_slot_proof: Option<VDFProof>,
reward_chain_slot_proof: VDFProof,
}