1use chik_protocol::Bytes32;
2use klvm_traits::{FromKlvm, ToKlvm};
3
4#[derive(Debug, Clone, PartialEq, Eq, ToKlvm, FromKlvm)]
5#[cfg_attr(fuzzing, derive(arbitrary::Arbitrary))]
6#[klvm(untagged, tuple)]
7pub enum Proof {
8 Lineage(LineageProof),
9 Eve(EveProof),
10}
11
12#[derive(Debug, Clone, PartialEq, Eq, ToKlvm, FromKlvm)]
13#[cfg_attr(fuzzing, derive(arbitrary::Arbitrary))]
14#[klvm(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, ToKlvm, FromKlvm)]
22#[cfg_attr(fuzzing, derive(arbitrary::Arbitrary))]
23#[klvm(list)]
24pub struct EveProof {
25 pub parent_coin_info: Bytes32,
26 pub amount: u64,
27}