From ebc99dd5b2ad86c2cda34d0ef362cb0a582c2bc3 Mon Sep 17 00:00:00 2001 From: Bruno Deferrari Date: Mon, 6 May 2024 14:47:27 -0300 Subject: [PATCH] fix(transition-frontier): Fix order of successful snarked ledger sync and enabling conditions --- ...on_frontier_sync_ledger_snarked_actions.rs | 24 +++++++++---------- ...on_frontier_sync_ledger_snarked_effects.rs | 6 +++-- ...on_frontier_sync_ledger_snarked_reducer.rs | 2 +- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/node/src/transition_frontier/sync/ledger/snarked/transition_frontier_sync_ledger_snarked_actions.rs b/node/src/transition_frontier/sync/ledger/snarked/transition_frontier_sync_ledger_snarked_actions.rs index 9d2fe9ba13..873a7ddaae 100644 --- a/node/src/transition_frontier/sync/ledger/snarked/transition_frontier_sync_ledger_snarked_actions.rs +++ b/node/src/transition_frontier/sync/ledger/snarked/transition_frontier_sync_ledger_snarked_actions.rs @@ -275,11 +275,13 @@ impl redux::EnablingCondition for TransitionFrontierSyncLedgerSnar .sync .ledger() .and_then(|s| s.snarked()) - .map_or(false, |s| { - matches!( - s, - TransitionFrontierSyncLedgerSnarkedState::MerkleTreeSyncPending { .. } - ) + .map_or(false, |s| match s { + TransitionFrontierSyncLedgerSnarkedState::MerkleTreeSyncPending { + queue, + pending_addresses: pending, + .. + } => queue.is_empty() && pending.is_empty(), + _ => false, }), // hashes and contents @@ -445,13 +447,11 @@ impl redux::EnablingCondition for TransitionFrontierSyncLedgerSnar .sync .ledger() .and_then(|s| s.snarked()) - .map_or(false, |s| match s { - TransitionFrontierSyncLedgerSnarkedState::MerkleTreeSyncPending { - queue, - pending_addresses: pending, - .. - } => queue.is_empty() && pending.is_empty(), - _ => false, + .map_or(false, |s| { + matches!( + s, + TransitionFrontierSyncLedgerSnarkedState::MerkleTreeSyncSuccess { .. } + ) }), } } diff --git a/node/src/transition_frontier/sync/ledger/snarked/transition_frontier_sync_ledger_snarked_effects.rs b/node/src/transition_frontier/sync/ledger/snarked/transition_frontier_sync_ledger_snarked_effects.rs index 1be479bec6..110c98960b 100644 --- a/node/src/transition_frontier/sync/ledger/snarked/transition_frontier_sync_ledger_snarked_effects.rs +++ b/node/src/transition_frontier/sync/ledger/snarked/transition_frontier_sync_ledger_snarked_effects.rs @@ -370,7 +370,8 @@ impl TransitionFrontierSyncLedgerSnarkedAction { } TransitionFrontierSyncLedgerSnarkedAction::ChildHashesAccepted { .. } => { if !store.dispatch(TransitionFrontierSyncLedgerSnarkedAction::PeersQuery) { - store.dispatch(TransitionFrontierSyncLedgerSnarkedAction::Success); + store + .dispatch(TransitionFrontierSyncLedgerSnarkedAction::MerkleTreeSyncSuccess); } } TransitionFrontierSyncLedgerSnarkedAction::ChildHashesRejected { .. } => { @@ -435,7 +436,8 @@ impl TransitionFrontierSyncLedgerSnarkedAction { } TransitionFrontierSyncLedgerSnarkedAction::ChildAccountsAccepted { .. } => { if !store.dispatch(TransitionFrontierSyncLedgerSnarkedAction::PeersQuery) { - store.dispatch(TransitionFrontierSyncLedgerSnarkedAction::Success); + store + .dispatch(TransitionFrontierSyncLedgerSnarkedAction::MerkleTreeSyncSuccess); } } TransitionFrontierSyncLedgerSnarkedAction::ChildAccountsRejected { .. } => { diff --git a/node/src/transition_frontier/sync/ledger/snarked/transition_frontier_sync_ledger_snarked_reducer.rs b/node/src/transition_frontier/sync/ledger/snarked/transition_frontier_sync_ledger_snarked_reducer.rs index 5e47115d4e..057157846d 100644 --- a/node/src/transition_frontier/sync/ledger/snarked/transition_frontier_sync_ledger_snarked_reducer.rs +++ b/node/src/transition_frontier/sync/ledger/snarked/transition_frontier_sync_ledger_snarked_reducer.rs @@ -320,7 +320,7 @@ impl TransitionFrontierSyncLedgerSnarkedState { // TODO(tizoc): should this be reflected in the state somehow? } TransitionFrontierSyncLedgerSnarkedAction::Success => { - let Self::MerkleTreeSyncPending { target, .. } = self else { + let Self::MerkleTreeSyncSuccess { target, .. } = self else { return; }; *self = Self::Success {