use chia_streamable_macro::Streamable;
use crate::chia_error;
use crate::streamable_struct;
use crate::Bytes32;
use crate::Coin;
use crate::G2Element;
use crate::PoolTarget;
use crate::Streamable;
#[cfg(feature = "py-bindings")]
use crate::from_json_dict::FromJsonDict;
#[cfg(feature = "py-bindings")]
use crate::to_json_dict::ToJsonDict;
#[cfg(feature = "py-bindings")]
use chia_py_streamable_macro::PyStreamable;
#[cfg(feature = "py-bindings")]
use pyo3::prelude::*;
streamable_struct! (TransactionsInfo {
generator_root: Bytes32, generator_refs_root: Bytes32, aggregated_signature: G2Element,
fees: u64, cost: u64, reward_claims_incorporated: Vec<Coin>, });
streamable_struct!(FoliageTransactionBlock {
prev_transaction_block_hash: Bytes32,
timestamp: u64,
filter_hash: Bytes32,
additions_root: Bytes32,
removals_root: Bytes32,
transactions_info_hash: Bytes32,
});
streamable_struct! (FoliageBlockData {
unfinished_reward_block_hash: Bytes32,
pool_target: PoolTarget,
pool_signature: Option<G2Element>, farmer_reward_puzzle_hash: Bytes32,
extension_data: Bytes32, });
streamable_struct! (Foliage {
prev_block_hash: Bytes32,
reward_block_hash: Bytes32,
foliage_block_data: FoliageBlockData,
foliage_block_data_signature: G2Element,
foliage_transaction_block_hash: Option<Bytes32>,
foliage_transaction_block_signature: Option<G2Element>,
});