From 2f2975c2790e83c592cd0ff594d3e8ce8a7c75d9 Mon Sep 17 00:00:00 2001 From: edouard Date: Tue, 24 Oct 2023 17:09:33 +0200 Subject: [PATCH] coinbase transaction outputs may not have valid scripts --- gui/src/app/view/home.rs | 17 +++++++---------- gui/src/app/view/psbt.rs | 10 +++++----- gui/src/daemon/model.rs | 6 +++--- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/gui/src/app/view/home.rs b/gui/src/app/view/home.rs index 507da7058..72a3fc0f8 100644 --- a/gui/src/app/view/home.rs +++ b/gui/src/app/view/home.rs @@ -158,17 +158,14 @@ fn event_list_view(i: usize, event: &HistoryTransaction) -> Column<'_, Message> .to_string(), ) { Some(p1_regular(label)) + } else if let Ok(addr) = + bitcoin::Address::from_script(&output.script_pubkey, event.network) + { + event.labels.get(&addr.to_string()).map(|label| { + p1_regular(format!("address label: {}", label)).style(color::GREY_3) + }) } else { - event - .labels - .get( - &bitcoin::Address::from_script(&output.script_pubkey, event.network) - .unwrap() - .to_string(), - ) - .map(|label| { - p1_regular(format!("address label: {}", label)).style(color::GREY_3) - }) + None }; if event.is_external() { if !event.change_indexes.contains(&output_index) { diff --git a/gui/src/app/view/psbt.rs b/gui/src/app/view/psbt.rs index 4a4f4e6ba..6073babc1 100644 --- a/gui/src/app/view/psbt.rs +++ b/gui/src/app/view/psbt.rs @@ -820,8 +820,8 @@ fn payment_view<'a>( labels_editing: &'a HashMap>, ) -> Element<'a, Message> { let addr = Address::from_script(&output.script_pubkey, network) - .unwrap() - .to_string(); + .ok() + .map(|a| a.to_string()); let outpoint = OutPoint { txid, vout: i as u32, @@ -848,7 +848,7 @@ fn payment_view<'a>( ) .push(amount(&Amount::from_sat(output.value))), ) - .push( + .push_maybe(addr.map(|addr| { Column::new() .push( Row::new() @@ -880,8 +880,8 @@ fn payment_view<'a>( .push(p1_bold("Address label:").style(color::GREY_3)) .push(p2_regular(label).style(color::GREY_3)), ) - })), - ) + })) + })) .into() } diff --git a/gui/src/daemon/model.rs b/gui/src/daemon/model.rs index 005ab8516..31cbd938f 100644 --- a/gui/src/daemon/model.rs +++ b/gui/src/daemon/model.rs @@ -365,9 +365,9 @@ impl Labelled for HistoryTransaction { txid, vout: vout as u32, })); - items.push(LabelItem::Address( - Address::from_script(&output.script_pubkey, self.network).unwrap(), - )); + if let Ok(addr) = Address::from_script(&output.script_pubkey, self.network) { + items.push(LabelItem::Address(addr)); + } } items }