diff --git a/gui/src/app/state/recovery.rs b/gui/src/app/state/recovery.rs index 295f3bc1..be66c6fe 100644 --- a/gui/src/app/state/recovery.rs +++ b/gui/src/app/state/recovery.rs @@ -44,7 +44,8 @@ impl RecoveryPanel { let mut recoverable_coins = (0, Amount::from_sat(0)); for coin in coins { if coin.spend_info.is_none() { - if remaining_sequence(coin, blockheight, timelock) != 0 { + // recoverable coins are coins that can be recoverable next block. + if remaining_sequence(coin, blockheight, timelock) > 1 { locked_coins.0 += 1; locked_coins.1 += coin.amount; } else { @@ -103,8 +104,9 @@ impl State for RecoveryPanel { self.recoverable_coins = (0, Amount::from_sat(0)); for coin in coins { if coin.spend_info.is_none() { + // recoverable coins are coins that can be recoverable next block. if remaining_sequence(&coin, cache.blockheight as u32, self.timelock) - != 0 + > 1 { self.locked_coins.0 += 1; self.locked_coins.1 += coin.amount; diff --git a/gui/src/app/view/recovery.rs b/gui/src/app/view/recovery.rs index 3a7aeb3a..826d0f89 100644 --- a/gui/src/app/view/recovery.rs +++ b/gui/src/app/view/recovery.rs @@ -82,7 +82,12 @@ pub fn recovery<'a>( .on_press(Message::Clipboard(psbt.unsigned_tx.txid().to_string())) .style(button::Style::Border.into())) ) - .push(Row::new().push(text(format!("Fees: {}", recoverable_coins.1 - Amount::from_sat(psbt.unsigned_tx.output[0].value))).small())) + .push_maybe(if recoverable_coins.1.to_sat() > psbt.unsigned_tx.output[0].value { + Some(Row::new() + .push(text(format!("Fees: {}", recoverable_coins.1 - Amount::from_sat(psbt.unsigned_tx.output[0].value))).small())) + } else { + None + }) )) } else { Column::new() @@ -115,7 +120,12 @@ pub fn recovery<'a>( .on_press(Message::Clipboard(psbt.unsigned_tx.txid().to_string())) .style(button::Style::Border.into())) ) - .push(Row::new().push(text(format!("Fees: {}", recoverable_coins.1 - Amount::from_sat(psbt.unsigned_tx.output[0].value))).small())) + .push_maybe(if recoverable_coins.1.to_sat() > psbt.unsigned_tx.output[0].value { + Some(Row::new() + .push(text(format!("Fees: {}", recoverable_coins.1 - Amount::from_sat(psbt.unsigned_tx.output[0].value))).small())) + } else { + None + }) ) ) .push(if !hws.is_empty() { @@ -186,7 +196,7 @@ pub fn recovery<'a>( ) .width(Length::Units(250)), ) - .push(if feerate.valid && !feerate.value.is_empty() && address.valid && !address.value.is_empty() { + .push(if feerate.valid && !feerate.value.is_empty() && address.valid && !address.value.is_empty() && recoverable_coins.0 != 0 { button::primary(None, "Next").on_press(Message::Next).width(Length::Units(200)) } else { button::primary(None, "Next")