diff --git a/LedgerAcquire.cpp b/LedgerAcquire.cpp index 945c0ed6c..b67353ecb 100644 --- a/LedgerAcquire.cpp +++ b/LedgerAcquire.cpp @@ -95,16 +95,37 @@ bool LedgerAcquire::takeBase(const std::vector& data) return true; } -bool LedgerAcquire::takeTxNode(const std::list& nodeIDs, const std::list >& data) +bool LedgerAcquire::takeTxNode(const std::list& nodeIDs, + const std::list >& data) { if(!mHaveBase) return false; - // WRITEME + std::list::const_iterator nodeIDit=nodeIDs.begin(); + std::list >::const_iterator nodeDatait=data.begin(); + while(nodeIDit!=nodeIDs.end()) + { + if(!mLedger->peekTransactionMap()->addKnownNode(*nodeIDit, *nodeDatait)) + return false; + ++nodeIDit; + ++nodeDatait; + } + if(!peekTransactionMap()->isSynching()) mHaveTransactions=true; return true; } -bool LedgerAcquire::takeAsNode(const std::list& hashes, const std::list >& data) +bool LedgerAcquire::takeAsNode(const std::list& nodeIDs, + const std::list >& data) { - // WRITEME + if(!mHaveBase) return false; + std::list::const_iterator nodeIDit=nodeIDs.begin(); + std::list >::const_iterator nodeDatait=data.begin(); + while(nodeIDit!=nodeIDs.end()) + { + if(!mLedger->peekAccountStateMap()->addKnownNode(*nodeIDit, *nodeDatait)) + return false; + ++nodeIDit; + ++nodeDatait; + } + if(!peekAccountStateMap()->isSynching()) mHaveState=true; return true; }