From ac89f278eb1dddaf39265fb9caf38d68cb7a8886 Mon Sep 17 00:00:00 2001 From: Rigidity Date: Sat, 28 Dec 2024 14:30:37 -0500 Subject: [PATCH] Zero cat test --- crates/chia-sdk-driver/src/primitives/cat.rs | 39 ++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/crates/chia-sdk-driver/src/primitives/cat.rs b/crates/chia-sdk-driver/src/primitives/cat.rs index e01a6d99..d901b679 100644 --- a/crates/chia-sdk-driver/src/primitives/cat.rs +++ b/crates/chia-sdk-driver/src/primitives/cat.rs @@ -334,6 +334,45 @@ mod tests { Ok(()) } + #[test] + fn test_zero_cat_issuance() -> anyhow::Result<()> { + let mut sim = Simulator::new(); + let ctx = &mut SpendContext::new(); + let (sk, pk, puzzle_hash, coin) = sim.new_p2(0)?; + let p2 = StandardLayer::new(pk); + + let memos = ctx.hint(puzzle_hash)?; + let (issue_cat, cat) = Cat::single_issuance_eve( + ctx, + coin.coin_id(), + 0, + Conditions::new().create_coin(puzzle_hash, 0, Some(memos)), + )?; + p2.spend(ctx, coin, issue_cat)?; + + sim.spend_coins(ctx.take(), &[sk.clone()])?; + + let cat = cat.wrapped_child(puzzle_hash, 0); + assert_eq!(cat.p2_puzzle_hash, puzzle_hash); + assert_eq!( + cat.asset_id, + GenesisByCoinIdTailArgs::curry_tree_hash(coin.coin_id()).into() + ); + assert!(sim.coin_state(cat.coin.coin_id()).is_some()); + + let cat_spend = CatSpend::new( + cat, + p2.spend_with_conditions( + ctx, + Conditions::new().create_coin(puzzle_hash, 0, Some(memos)), + )?, + ); + Cat::spend_all(ctx, &[cat_spend])?; + sim.spend_coins(ctx.take(), &[sk])?; + + Ok(()) + } + #[test] fn test_missing_cat_issuance_output() -> anyhow::Result<()> { let mut sim = Simulator::new();