Add last_seen to the the ConfirmationTime::Unconfirmed variant

This allows us to skip adding an extra input to `Wallet::insert_tx`.

Also remove redundant logic.
This commit is contained in:
志宇
2023-05-11 22:56:26 +08:00
parent aba88130d9
commit 7261669c09
10 changed files with 75 additions and 80 deletions

View File

@@ -99,14 +99,14 @@ impl TxHeight {
)]
pub enum ConfirmationTime {
Confirmed { height: u32, time: u64 },
Unconfirmed,
Unconfirmed { last_seen: u64 },
}
impl sparse_chain::ChainPosition for ConfirmationTime {
fn height(&self) -> TxHeight {
match self {
ConfirmationTime::Confirmed { height, .. } => TxHeight::Confirmed(*height),
ConfirmationTime::Unconfirmed => TxHeight::Unconfirmed,
ConfirmationTime::Unconfirmed { .. } => TxHeight::Unconfirmed,
}
}
@@ -116,7 +116,7 @@ impl sparse_chain::ChainPosition for ConfirmationTime {
height,
time: u64::MAX,
},
TxHeight::Unconfirmed => Self::Unconfirmed,
TxHeight::Unconfirmed => Self::Unconfirmed { last_seen: 0 },
}
}
@@ -126,7 +126,7 @@ impl sparse_chain::ChainPosition for ConfirmationTime {
height,
time: u64::MIN,
},
TxHeight::Unconfirmed => Self::Unconfirmed,
TxHeight::Unconfirmed => Self::Unconfirmed { last_seen: 0 },
}
}
}
@@ -144,7 +144,7 @@ impl From<ObservedAs<ConfirmationTimeAnchor>> for ConfirmationTime {
height: a.confirmation_height,
time: a.confirmation_time,
},
ObservedAs::Unconfirmed(_) => Self::Unconfirmed,
ObservedAs::Unconfirmed(_) => Self::Unconfirmed { last_seen: 0 },
}
}
}

View File

@@ -33,7 +33,7 @@ fn test_insert_tx() {
let _ = tracker.txout_index.reveal_to_target(&(), 5);
let changeset = tracker
.insert_tx_preview(tx.clone(), ConfirmationTime::Unconfirmed)
.insert_tx_preview(tx.clone(), ConfirmationTime::Unconfirmed { last_seen: 0 })
.unwrap();
tracker.apply_changeset(changeset);
assert_eq!(
@@ -41,7 +41,7 @@ fn test_insert_tx() {
.chain_graph()
.transactions_in_chain()
.collect::<Vec<_>>(),
vec![(&ConfirmationTime::Unconfirmed, &tx,)]
vec![(&ConfirmationTime::Unconfirmed { last_seen: 0 }, &tx,)]
);
assert_eq!(