From a38e80eb6ba8d3c20b4d34bf8d07992888e5336c Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Thu, 30 May 2013 13:44:18 -0700 Subject: [PATCH] Function to get list of features supported by ledger. --- src/cpp/ripple/Ledger.cpp | 12 ++++++++++++ src/cpp/ripple/Ledger.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/src/cpp/ripple/Ledger.cpp b/src/cpp/ripple/Ledger.cpp index 227f350eb..da9b4e105 100644 --- a/src/cpp/ripple/Ledger.cpp +++ b/src/cpp/ripple/Ledger.cpp @@ -1327,6 +1327,18 @@ std::vector< std::pair > Ledger::getLedgerHashes() return ret; } +boost::unordered_set Ledger::getLedgerFeatures() +{ + boost::unordered_set usFeatures; + SLE::pointer sleFeatures = getSLEi(getLedgerFeatureIndex()); + if (sleFeatures) + { + BOOST_FOREACH(const uint256& uFeature, sleFeatures->getFieldV256(sfFeatures).peekValue()) + usFeatures.insert(uFeature); + } + return usFeatures; +} + // XRP to XRP not allowed. // Currencies must have appropriate issuer. // Currencies or accounts must differ. diff --git a/src/cpp/ripple/Ledger.h b/src/cpp/ripple/Ledger.h index b7e3cf524..3ad00ca8c 100644 --- a/src/cpp/ripple/Ledger.h +++ b/src/cpp/ripple/Ledger.h @@ -5,6 +5,7 @@ #include #include +#include #include #include @@ -219,6 +220,7 @@ public: static uint256 getLedgerFeatureIndex(); static uint256 getLedgerFeeIndex(); + boost::unordered_set getLedgerFeatures(); std::vector getNeededTransactionHashes(int max, SHAMapSyncFilter* filter); std::vector getNeededAccountStateHashes(int max, SHAMapSyncFilter* filter);