chia_sdk_driver/primitives/cat/
single_cat_spend.rs

1use chia_protocol::{Bytes32, Coin};
2use chia_puzzle_types::CoinProof;
3
4use crate::Spend;
5
6#[derive(Debug, Clone, Copy)]
7pub struct SingleCatSpend {
8    pub prev_coin_id: Bytes32,
9    pub next_coin_proof: CoinProof,
10    pub prev_subtotal: i64,
11    pub extra_delta: i64,
12    pub inner_spend: Spend,
13    pub revoke: bool,
14}
15
16impl SingleCatSpend {
17    pub fn eve(coin: Coin, inner_puzzle_hash: Bytes32, inner_spend: Spend) -> Self {
18        Self {
19            prev_coin_id: coin.coin_id(),
20            next_coin_proof: CoinProof {
21                parent_coin_info: coin.parent_coin_info,
22                inner_puzzle_hash,
23                amount: coin.amount,
24            },
25            prev_subtotal: 0,
26            extra_delta: 0,
27            inner_spend,
28            revoke: false,
29        }
30    }
31}