1use chia_protocol::Bytes32;
2use clvm_traits::{FromClvm, ToClvm};
3
4#[derive(Debug, Clone, PartialEq, Eq, ToClvm, FromClvm)]
5#[cfg_attr(fuzzing, derive(arbitrary::Arbitrary))]
6#[clvm(untagged, tuple)]
7pub enum Proof {
8 Lineage(LineageProof),
9 Eve(EveProof),
10}
11
12#[derive(Debug, Clone, PartialEq, Eq, ToClvm, FromClvm)]
13#[cfg_attr(fuzzing, derive(arbitrary::Arbitrary))]
14#[clvm(list)]
15pub struct LineageProof {
16 pub parent_coin_info: Bytes32,
17 pub inner_puzzle_hash: Bytes32,
18 pub amount: u64,
19}
20
21#[derive(Debug, Clone, PartialEq, Eq, ToClvm, FromClvm)]
22#[cfg_attr(fuzzing, derive(arbitrary::Arbitrary))]
23#[clvm(list)]
24pub struct EveProof {
25 pub parent_coin_info: Bytes32,
26 pub amount: u64,
27}