mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
APIv2: remove tx_history and ledger_header (#4759)
Remove `tx_history` and `ledger_header` methods from API version 2. Update `RPC::Handler` to allow for methods (or method implementations) to be API version specific. This partially resolves #4727. We can now store multiple handlers with the same name, as long as they belong to different (non-overlapping) API versions. This necessarily impacts the handler lookup algorithm and its complexity; however, there is no performance loss on x86_64 architecture, and only minimal performance loss on arm64 (around 10ns). This design change gives us extra flexibility evolving the API in the future, including other parts of #4727. In API version 2, `tx_history` and `ledger_header` are no longer recognised; if they are called, `rippled` will return error `unknownCmd` Resolve #3638 Resolve #3539
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
#include <ripple/protocol/jss.h>
|
||||
#include <ripple/rpc/impl/Handler.h>
|
||||
#include <test/jtx/Env.h>
|
||||
#include <test/jtx/TestHelpers.h>
|
||||
|
||||
#include <atomic>
|
||||
#include <chrono>
|
||||
@@ -309,7 +310,8 @@ public:
|
||||
|
||||
// Get the all the labels we can use for RPC interfaces without
|
||||
// causing an assert.
|
||||
std::vector<char const*> labels{ripple::RPC::getHandlerNames()};
|
||||
std::vector<char const*> labels =
|
||||
test::jtx::make_vector(ripple::RPC::getHandlerNames());
|
||||
std::shuffle(labels.begin(), labels.end(), default_prng());
|
||||
|
||||
// Get two IDs to associate with each label. Errors tend to happen at
|
||||
|
||||
Reference in New Issue
Block a user