From 1d3561d328e7ef29d2d42010cf824131470f15b8 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 8 Oct 2025 15:37:57 -0500 Subject: [PATCH] fix: return slotsealed when dump omits pubkey --- lib/src/sats_card.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/src/sats_card.rs b/lib/src/sats_card.rs index 44e4981..55f1fcf 100644 --- a/lib/src/sats_card.rs +++ b/lib/src/sats_card.rs @@ -261,8 +261,11 @@ impl SatsCard { } } - // at this point pubkey must be available - let pubkey_bytes = dump_response.pubkey.unwrap(); + // at this point the card is expected to include the pubkey; if not, treat it as sealed. + let pubkey_bytes = match dump_response.pubkey { + Some(bytes) => bytes, + None => return Err(DumpError::SlotSealed(slot)), + }; let pubkey = PublicKey::from_slice(&pubkey_bytes)?; // TODO use chaincode and master public key to verify pubkey or return error @@ -456,6 +459,7 @@ impl core::fmt::Debug for SatsCard { #[cfg(feature = "emulator")] #[cfg(test)] mod test { + #![allow(deprecated)] // bdk_wallet::SignOptions is deprecated upstream; tests still rely on it. use crate::CkTapCard; use crate::emulator::find_emulator; use crate::emulator::test::{CardTypeOption, EcardSubprocess};