diff --git a/conanfile.py b/conanfile.py index 23984ddc..c3fd03bb 100644 --- a/conanfile.py +++ b/conanfile.py @@ -31,7 +31,7 @@ class Clio(ConanFile): 'protobuf/3.21.9', 'grpc/1.50.1', 'openssl/1.1.1v', - 'xrpl/2.5.0-b1', + 'xrpl/2.5.0-rc1', 'zlib/1.3.1', 'libbacktrace/cci.20210118' ] diff --git a/src/data/AmendmentCenter.hpp b/src/data/AmendmentCenter.hpp index a465b544..aeb1f149 100644 --- a/src/data/AmendmentCenter.hpp +++ b/src/data/AmendmentCenter.hpp @@ -140,6 +140,11 @@ struct Amendments { REGISTER(PermissionDelegation); REGISTER(fixPayChanCancelAfter); REGISTER(Batch); + REGISTER(PermissionedDEX); + REGISTER(SingleAssetVault); + REGISTER(TokenEscrow); + REGISTER(fixAMMv1_3); + REGISTER(fixEnforceNFTokenTrustlineV2); // Obsolete but supported by libxrpl REGISTER(CryptoConditionsSuite); diff --git a/src/feed/impl/TransactionFeed.cpp b/src/feed/impl/TransactionFeed.cpp index b2b85db4..6ae990e6 100644 --- a/src/feed/impl/TransactionFeed.cpp +++ b/src/feed/impl/TransactionFeed.cpp @@ -277,7 +277,8 @@ TransactionFeed::pub( // determine the OrderBook ripple::Book const book{ data->getFieldAmount(ripple::sfTakerGets).issue(), - data->getFieldAmount(ripple::sfTakerPays).issue() + data->getFieldAmount(ripple::sfTakerPays).issue(), + std::nullopt }; if (affectedBooks.find(book) == affectedBooks.end()) { affectedBooks.insert(book); diff --git a/src/rpc/RPCHelpers.cpp b/src/rpc/RPCHelpers.cpp index 43e24096..e18c34fc 100644 --- a/src/rpc/RPCHelpers.cpp +++ b/src/rpc/RPCHelpers.cpp @@ -1338,7 +1338,7 @@ parseBook(ripple::Currency pays, ripple::AccountID payIssuer, ripple::Currency g if (pays == gets && payIssuer == getIssuer) return std::unexpected{Status{RippledError::rpcBAD_MARKET, "badMarket"}}; - return ripple::Book{{pays, payIssuer}, {gets, getIssuer}}; + return ripple::Book{{pays, payIssuer}, {gets, getIssuer}, std::nullopt}; } std::expected @@ -1446,7 +1446,7 @@ parseBook(boost::json::object const& request) if (payCurrency == getCurrency && payIssuer == getIssuer) return std::unexpected{Status{RippledError::rpcBAD_MARKET, "badMarket"}}; - return ripple::Book{{payCurrency, payIssuer}, {getCurrency, getIssuer}}; + return ripple::Book{{payCurrency, payIssuer}, {getCurrency, getIssuer}, std::nullopt}; } std::expected diff --git a/tests/unit/feed/SubscriptionManagerTests.cpp b/tests/unit/feed/SubscriptionManagerTests.cpp index 08493719..522c597a 100644 --- a/tests/unit/feed/SubscriptionManagerTests.cpp +++ b/tests/unit/feed/SubscriptionManagerTests.cpp @@ -43,6 +43,7 @@ #include #include +#include #include namespace { @@ -161,7 +162,7 @@ TEST_F(SubscriptionManagerTest, ReportCurrentSubscriber) subscriptionManagerPtr_->subProposedAccount(account, session1); subscriptionManagerPtr_->subProposedAccount(account, session2); auto const issue1 = getIssue(kCURRENCY, kISSUER); - ripple::Book const book{ripple::xrpIssue(), issue1}; + ripple::Book const book{ripple::xrpIssue(), issue1, std::nullopt}; subscriptionManagerPtr_->subBook(book, session1); subscriptionManagerPtr_->subBook(book, session2); EXPECT_EQ(subscriptionManagerPtr_->report(), json::parse(kREPORT_RETURN)); @@ -327,7 +328,7 @@ TEST_F(SubscriptionManagerTest, TransactionTest) { auto const issue1 = getIssue(kCURRENCY, kISSUER); auto const account = getAccountIdWithString(kISSUER); - ripple::Book const book{ripple::xrpIssue(), issue1}; + ripple::Book const book{ripple::xrpIssue(), issue1, std::nullopt}; EXPECT_CALL(*sessionPtr_, onDisconnect).Times(3); subscriptionManagerPtr_->subBook(book, session_); subscriptionManagerPtr_->subTransactions(session_); diff --git a/tests/unit/feed/TransactionFeedTests.cpp b/tests/unit/feed/TransactionFeedTests.cpp index 2d15bb65..b095949d 100644 --- a/tests/unit/feed/TransactionFeedTests.cpp +++ b/tests/unit/feed/TransactionFeedTests.cpp @@ -43,6 +43,7 @@ #include #include +#include #include using namespace data; @@ -350,7 +351,7 @@ TEST_F(FeedTransactionTest, SubBothTransactionAndAccount) TEST_F(FeedTransactionTest, SubBookV1) { auto const issue1 = getIssue(kCURRENCY, kISSUER); - ripple::Book const book{ripple::xrpIssue(), issue1}; + ripple::Book const book{ripple::xrpIssue(), issue1, std::nullopt}; EXPECT_CALL(*mockSessionPtr, onDisconnect); testFeedPtr->sub(book, sessionPtr); @@ -554,7 +555,7 @@ TEST_F(FeedTransactionTest, SubBookV1) TEST_F(FeedTransactionTest, SubBookV2) { auto const issue1 = getIssue(kCURRENCY, kISSUER); - ripple::Book const book{ripple::xrpIssue(), issue1}; + ripple::Book const book{ripple::xrpIssue(), issue1, std::nullopt}; EXPECT_CALL(*mockSessionPtr, onDisconnect); testFeedPtr->sub(book, sessionPtr); @@ -785,7 +786,7 @@ TEST_F(FeedTransactionTest, SubRepeat) EXPECT_EQ(testFeedPtr->accountSubCount(), 0); auto const issue1 = getIssue(kCURRENCY, kISSUER); - ripple::Book const book{ripple::xrpIssue(), issue1}; + ripple::Book const book{ripple::xrpIssue(), issue1, std::nullopt}; EXPECT_CALL(*mockSessionPtr, onDisconnect); testFeedPtr->sub(book, sessionPtr); @@ -1233,7 +1234,7 @@ TEST_F(TransactionFeedMockPrometheusTest, subUnsub) testFeedPtr_->unsub(account, sessionPtr_); auto const issue1 = getIssue(kCURRENCY, kISSUER); - ripple::Book const book{ripple::xrpIssue(), issue1}; + ripple::Book const book{ripple::xrpIssue(), issue1, std::nullopt}; EXPECT_CALL(*mockSessionPtr_, onDisconnect); testFeedPtr_->sub(book, sessionPtr_); testFeedPtr_->unsub(book, sessionPtr_); @@ -1263,7 +1264,7 @@ TEST_F(TransactionFeedMockPrometheusTest, AutoDisconnect) testFeedPtr_->sub(account, sessionPtr_); auto const issue1 = getIssue(kCURRENCY, kISSUER); - ripple::Book const book{ripple::xrpIssue(), issue1}; + ripple::Book const book{ripple::xrpIssue(), issue1, std::nullopt}; testFeedPtr_->sub(book, sessionPtr_); // Emulate onDisconnect signal is called