From b0fda523160e4b2d10c2e563c2c454736bdb4d37 Mon Sep 17 00:00:00 2001 From: Bruno Deferrari Date: Thu, 28 Mar 2024 16:31:28 -0300 Subject: [PATCH] feat(transition-frontier): Implement missing enabling conditions --- ...on_frontier_sync_ledger_snarked_actions.rs | 34 +++++++++++++++---- 1 file changed, 28 insertions(+), 6 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 5295cfdc9..8e3ad275d 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 @@ -250,13 +250,35 @@ impl redux::EnablingCondition for TransitionFrontierSyncLedgerSnar .and_then(|s| s.attempts.get(sender)) .map_or(false, |s| s.is_success()) } - // TODO(tizoc): implement - TransitionFrontierSyncLedgerSnarkedAction::NumAccountsSuccess { .. } => true, + TransitionFrontierSyncLedgerSnarkedAction::NumAccountsSuccess { .. } => state + .transition_frontier + .sync + .ledger() + .and_then(|s| s.snarked()?.num_accounts_pending()) + .is_some(), - // TODO(tizoc): implement - TransitionFrontierSyncLedgerSnarkedAction::MerkleTreeSyncPending => true, - // TODO(tizoc): implement - TransitionFrontierSyncLedgerSnarkedAction::MerkleTreeSyncSuccess => true, + TransitionFrontierSyncLedgerSnarkedAction::MerkleTreeSyncPending => state + .transition_frontier + .sync + .ledger() + .and_then(|s| s.snarked()) + .map_or(false, |s| { + matches!( + s, + TransitionFrontierSyncLedgerSnarkedState::NumAccountsSuccess { .. } + ) + }), + TransitionFrontierSyncLedgerSnarkedAction::MerkleTreeSyncSuccess => state + .transition_frontier + .sync + .ledger() + .and_then(|s| s.snarked()) + .map_or(false, |s| { + matches!( + s, + TransitionFrontierSyncLedgerSnarkedState::MerkleTreeSyncPending { .. } + ) + }), // hashes and contents TransitionFrontierSyncLedgerSnarkedAction::PeerQueryAddressInit {