Properly calculate the confirmations for Bitcoin tx

Once the transaction was included into a block it has one confirmation - before inclusion it has zero.
current-block-height - transaction-block-height = zero; but that means one confirmation.
Hence, the confirmation calculation was adapted to: Current-block-height - (transaction-block-height - 1).
This commit is contained in:
Daniel Karzel 2021-02-19 17:09:53 +11:00
parent 374c2d4372
commit 164de3c524

View File

@ -273,7 +273,11 @@ impl WaitForTransactionFinality for Wallet {
tracing::debug!("tx_block_height: {:?}", tx_block_height); tracing::debug!("tx_block_height: {:?}", tx_block_height);
let block_height = self.get_block_height().await?; let block_height = self.get_block_height().await?;
tracing::debug!("latest_block_height: {:?}", block_height); tracing::debug!("latest_block_height: {:?}", block_height);
if let Some(confirmations) = block_height.checked_sub(tx_block_height) { if let Some(confirmations) = block_height.checked_sub(
tx_block_height
.checked_sub(BlockHeight::new(1))
.expect("transaction must be included in block with height >= 1"),
) {
tracing::debug!("confirmations: {:?}", confirmations); tracing::debug!("confirmations: {:?}", confirmations);
if u32::from(confirmations) >= execution_params.bitcoin_finality_confirmations { if u32::from(confirmations) >= execution_params.bitcoin_finality_confirmations {
break; break;