summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
9eb8780)
This resolves an issue where we will never track 2 on-chain events
which are waiting for ANTI_REORG_DELAY at the same height.
This partially reverts and fixes "Move our_claim_txn_waiting_first_conf
to pending_claim_requests".
// before we could anyway), wait for ANTI_REORG_DELAY and clean the RBF
// tracking map.
if set_equality {
// before we could anyway), wait for ANTI_REORG_DELAY and clean the RBF
// tracking map.
if set_equality {
+ let new_event = OnchainEvent::Claim { claim_request: ancestor_claimable_txid.0.clone() };
match self.onchain_events_waiting_threshold_conf.entry(height + ANTI_REORG_DELAY - 1) {
match self.onchain_events_waiting_threshold_conf.entry(height + ANTI_REORG_DELAY - 1) {
- hash_map::Entry::Occupied(_) => {},
+ hash_map::Entry::Occupied(mut entry) => {
+ if !entry.get().contains(&new_event) {
+ entry.get_mut().push(new_event);
+ }
+ },
hash_map::Entry::Vacant(entry) => {
hash_map::Entry::Vacant(entry) => {
- entry.insert(vec![OnchainEvent::Claim { claim_request: ancestor_claimable_txid.0.clone()}]);
+ entry.insert(vec![new_event]);
}
}
} else { // If false, generate new claim request with update outpoint set
}
}
} else { // If false, generate new claim request with update outpoint set
}
}
for (outpoint, input_material) in claimed_outputs_material.drain(..) {
}
}
for (outpoint, input_material) in claimed_outputs_material.drain(..) {
+ let new_event = OnchainEvent::ContentiousOutpoint { outpoint, input_material };
match self.onchain_events_waiting_threshold_conf.entry(height + ANTI_REORG_DELAY - 1) {
match self.onchain_events_waiting_threshold_conf.entry(height + ANTI_REORG_DELAY - 1) {
- hash_map::Entry::Occupied(_) => {},
+ hash_map::Entry::Occupied(mut entry) => {
+ if !entry.get().contains(&new_event) {
+ entry.get_mut().push(new_event);
+ }
+ },
hash_map::Entry::Vacant(entry) => {
hash_map::Entry::Vacant(entry) => {
- entry.insert(vec![OnchainEvent::ContentiousOutpoint { outpoint, input_material }]);
+ entry.insert(vec![new_event]);