diff --git a/src/SHAMapSync.cpp b/src/SHAMapSync.cpp index 3cd0a8013..e243e5e0b 100644 --- a/src/SHAMapSync.cpp +++ b/src/SHAMapSync.cpp @@ -348,6 +348,26 @@ static bool confuseMap(SHAMap &map, int count) return true; } +std::list > SHAMap::getTrustedPath(const uint256& index) +{ + boost::recursive_mutex::scoped_lock sl(mLock); + std::stack stack = SHAMap::getStack(index, false); + + if (stack.empty() || !stack.top()->isLeaf()) + throw std::runtime_error("requested leaf not present"); + + std::list< std::vector > path; + Serializer s; + while (!stack.empty()) + { + stack.top()->addRaw(s); + path.push_back(s.getData()); + s.erase(); + stack.pop(); + } + return path; +} + bool SHAMap::syncTest() { unsigned int seed;