diff --git a/ripple2010.vcxproj b/ripple2010.vcxproj
index 085035df9..e785bc9c3 100644
--- a/ripple2010.vcxproj
+++ b/ripple2010.vcxproj
@@ -39,6 +39,7 @@
true
+ rippled
false
@@ -293,6 +294,7 @@
+
Designer
diff --git a/ripple2010.vcxproj.filters b/ripple2010.vcxproj.filters
index 6ad621db5..bec881141 100644
--- a/ripple2010.vcxproj.filters
+++ b/ripple2010.vcxproj.filters
@@ -357,6 +357,9 @@
Source Files
+
+ Source Files
+
@@ -642,13 +645,15 @@
html
-
-
+
+
+
+
diff --git a/src/cpp/ripple/LedgerAcquire.cpp b/src/cpp/ripple/LedgerAcquire.cpp
index 025046b91..e9dea3bab 100644
--- a/src/cpp/ripple/LedgerAcquire.cpp
+++ b/src/cpp/ripple/LedgerAcquire.cpp
@@ -528,6 +528,7 @@ int PeerSet::getPeerCount() const
void LedgerAcquire::filterNodes(std::vector& nodeIDs, std::vector& nodeHashes,
std::set& recentNodes, int max, bool aggressive)
{ // ask for new nodes in preference to ones we've already asked for
+ assert(nodeHashes.size() == nodeIDs.size() );
std::vector duplicates;
duplicates.reserve(nodeIDs.size());
diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp
index ebf310da5..bd543c69f 100644
--- a/src/cpp/ripple/RPCHandler.cpp
+++ b/src/cpp/ripple/RPCHandler.cpp
@@ -1696,7 +1696,7 @@ Json::Value RPCHandler::doAccountTransactions(Json::Value jvRequest, int& cost)
try
{
#endif
- int vl = mNetOps->getValidatedSeq();
+ unsigned int vl = mNetOps->getValidatedSeq();
ScopedUnlock su(theApp->getMasterLock());
Json::Value ret(Json::objectValue);
@@ -2729,11 +2729,19 @@ Json::Value RPCHandler::doSubscribe(Json::Value jvRequest, int& cost)
if(currencyIn.isNonZero())
STAmount::issuerFromString(issuerIn,(*it)["IssuerIn"].asString());
+ bool bothSides=false;
+ if((*it).isMember("BothSides") && (*it)["BothSides"].asBool()) bothSides=true;
+
mNetOps->subBook(ispSub, currencyIn, currencyOut, issuerIn, issuerOut);
+ if(bothSides) mNetOps->subBook(ispSub, currencyOut, currencyIn, issuerOut, issuerIn);
if((*it)["StateNow"].asBool())
{
- //lpLedger = theApp->getLedgerMaster().getClosedLedger();
- //mNetOps->getBookPage(lpLedger, uTakerPaysCurrencyID, uTakerPaysIssuerID, uTakerGetsCurrencyID, uTakerGetsIssuerID, raTakerID.getAccountID(), false, iLimit, jvMarker, jvResult);
+ Ledger::pointer ledger= theApp->getLedgerMaster().getClosedLedger();
+ RippleAddress raTakerID;
+ raTakerID.setAccountID(ACCOUNT_ONE);
+ const Json::Value jvMarker = Json::Value(Json::nullValue);
+ mNetOps->getBookPage(ledger, currencyOut, issuerOut, currencyIn, issuerIn, raTakerID.getAccountID(), false, 0, jvMarker, jvResult);
+ if(bothSides) mNetOps->getBookPage(ledger, currencyIn, issuerIn, currencyOut, issuerOut, raTakerID.getAccountID(), false, 0, jvMarker, jvResult);
}
}
}
diff --git a/src/js/sjcl b/src/js/sjcl
index dbdef434e..d04d0bdcc 160000
--- a/src/js/sjcl
+++ b/src/js/sjcl
@@ -1 +1 @@
-Subproject commit dbdef434e76c3f16835f3126a7ff1c717b1ce8af
+Subproject commit d04d0bdccd986e434b98fe393e1e01286c10fc36