diff --git a/src/ripple/net/impl/RPCCall.cpp b/src/ripple/net/impl/RPCCall.cpp index 002e88038..3ba15e3e3 100644 --- a/src/ripple/net/impl/RPCCall.cpp +++ b/src/ripple/net/impl/RPCCall.cpp @@ -91,6 +91,7 @@ createHTTPPost( class RPCParser { private: + unsigned const apiVersion_; beast::Journal const j_; // TODO New routine for parsing ledger parameters, other routines should @@ -350,8 +351,7 @@ private: if (uLedgerMax != -1 && uLedgerMax < uLedgerMin) { - // The command line always follows apiMaximumSupportedVersion - if (RPC::apiMaximumSupportedVersion == 1) + if (apiVersion_ == 1) return rpcError(rpcLGR_IDXS_INVALID); return rpcError(rpcNOT_SYNCED); } @@ -369,76 +369,6 @@ private: return jvRequest; } - // tx_account accountID [ledger_min [ledger_max [limit]]]] [binary] [count] - // [forward] - Json::Value - parseTxAccount(Json::Value const& jvParams) - { - Json::Value jvRequest(Json::objectValue); - unsigned int iParams = jvParams.size(); - - auto const account = parseBase58(jvParams[0u].asString()); - if (!account) - return rpcError(rpcACT_MALFORMED); - - jvRequest[jss::account] = toBase58(*account); - - bool bDone = false; - - while (!bDone && iParams >= 2) - { - if (jvParams[iParams - 1].asString() == jss::binary) - { - jvRequest[jss::binary] = true; - --iParams; - } - else if (jvParams[iParams - 1].asString() == jss::count) - { - jvRequest[jss::count] = true; - --iParams; - } - else if (jvParams[iParams - 1].asString() == jss::forward) - { - jvRequest[jss::forward] = true; - --iParams; - } - else - { - bDone = true; - } - } - - if (1 == iParams) - { - } - else if (2 == iParams) - { - if (!jvParseLedger(jvRequest, jvParams[1u].asString())) - return jvRequest; - } - else - { - std::int64_t uLedgerMin = jvParams[1u].asInt(); - std::int64_t uLedgerMax = jvParams[2u].asInt(); - - if (uLedgerMax != -1 && uLedgerMax < uLedgerMin) - { - // The command line always follows apiMaximumSupportedVersion - if (RPC::apiMaximumSupportedVersion == 1) - return rpcError(rpcLGR_IDXS_INVALID); - return rpcError(rpcNOT_SYNCED); - } - - jvRequest[jss::ledger_index_min] = jvParams[1u].asInt(); - jvRequest[jss::ledger_index_max] = jvParams[2u].asInt(); - - if (iParams >= 4) - jvRequest[jss::limit] = jvParams[3u].asInt(); - } - - return jvRequest; - } - // book_offers [ [ [ // [ []]]]] limit: 0 = no limit proof: 0 or 1 // @@ -1423,7 +1353,8 @@ private: public: //-------------------------------------------------------------------------- - explicit RPCParser(beast::Journal j) : j_(j) + explicit RPCParser(unsigned apiVersion, beast::Journal j) + : apiVersion_(apiVersion), j_(j) { } @@ -1523,7 +1454,6 @@ public: {"stop", &RPCParser::parseAsIs, 0, 0}, {"transaction_entry", &RPCParser::parseTransactionEntry, 2, 2}, {"tx", &RPCParser::parseTx, 1, 4}, - {"tx_account", &RPCParser::parseTxAccount, 1, 7}, {"tx_history", &RPCParser::parseTxHistory, 1, 1}, {"unl_list", &RPCParser::parseAsIs, 0, 0}, {"validation_create", &RPCParser::parseValidationCreate, 0, 1}, @@ -1687,7 +1617,7 @@ rpcCmdToJson( { Json::Value jvRequest(Json::objectValue); - RPCParser rpParser(j); + RPCParser rpParser(apiVersion, j); Json::Value jvRpcParams(Json::arrayValue); for (int i = 1; i != args.size(); i++) @@ -1879,7 +1809,7 @@ fromCommandLine( Logs& logs) { auto const result = - rpcClient(vCmd, config, logs, RPC::apiMaximumSupportedVersion); + rpcClient(vCmd, config, logs, RPC::apiCommandLineVersion); std::cout << result.second.toStyledString(); diff --git a/src/ripple/rpc/impl/RPCHelpers.h b/src/ripple/rpc/impl/RPCHelpers.h index 35a82e587..343e8e1c4 100644 --- a/src/ripple/rpc/impl/RPCHelpers.h +++ b/src/ripple/rpc/impl/RPCHelpers.h @@ -251,8 +251,9 @@ extern beast::SemanticVersion const lastVersion; constexpr unsigned int apiInvalidVersion = 0; constexpr unsigned int apiVersionIfUnspecified = 1; constexpr unsigned int apiMinimumSupportedVersion = 1; -constexpr unsigned int apiMaximumSupportedVersion = 1; -constexpr unsigned int apiBetaVersion = 2; +constexpr unsigned int apiMaximumSupportedVersion = 2; +constexpr unsigned int apiCommandLineVersion = 1; // TODO Bump to 2 later +constexpr unsigned int apiBetaVersion = 3; constexpr unsigned int apiMaximumValidVersion = apiBetaVersion; static_assert(apiMinimumSupportedVersion >= apiVersionIfUnspecified); diff --git a/src/test/jtx/Env.h b/src/test/jtx/Env.h index f02efe45e..7104a96f6 100644 --- a/src/test/jtx/Env.h +++ b/src/test/jtx/Env.h @@ -279,6 +279,17 @@ public: The command is examined and used to build the correct JSON as per the arguments. */ + template + Json::Value + rpc(unsigned apiVersion, + std::unordered_map const& headers, + std::string const& cmd, + Args&&... args); + + template + Json::Value + rpc(unsigned apiVersion, std::string const& cmd, Args&&... args); + template Json::Value rpc(std::unordered_map const& headers, @@ -692,6 +703,7 @@ protected: Json::Value do_rpc( + unsigned apiVersion, std::vector const& args, std::unordered_map const& headers = {}); @@ -738,12 +750,39 @@ protected: template Json::Value Env::rpc( + unsigned apiVersion, std::unordered_map const& headers, std::string const& cmd, Args&&... args) { return do_rpc( - std::vector{cmd, std::forward(args)...}, headers); + apiVersion, + std::vector{cmd, std::forward(args)...}, + headers); +} + +template +Json::Value +Env::rpc(unsigned apiVersion, std::string const& cmd, Args&&... args) +{ + return rpc( + apiVersion, + std::unordered_map(), + cmd, + std::forward(args)...); +} + +template +Json::Value +Env::rpc( + std::unordered_map const& headers, + std::string const& cmd, + Args&&... args) +{ + return do_rpc( + RPC::apiCommandLineVersion, + std::vector{cmd, std::forward(args)...}, + headers); } template @@ -783,7 +822,7 @@ void forAllApiVersions(VersionedTestCallable auto... testCallable) { for (auto testVersion = RPC::apiMinimumSupportedVersion; - testVersion <= RPC::apiBetaVersion; + testVersion <= RPC::apiMaximumValidVersion; ++testVersion) { (..., testCallable(testVersion)); diff --git a/src/test/jtx/impl/Env.cpp b/src/test/jtx/impl/Env.cpp index f84732ed4..c435ff67e 100644 --- a/src/test/jtx/impl/Env.cpp +++ b/src/test/jtx/impl/Env.cpp @@ -502,15 +502,11 @@ Env::st(JTx const& jt) Json::Value Env::do_rpc( + unsigned apiVersion, std::vector const& args, std::unordered_map const& headers) { - return rpcClient( - args, - app().config(), - app().logs(), - RPC::apiMaximumSupportedVersion, - headers) + return rpcClient(args, app().config(), app().logs(), apiVersion, headers) .second; } diff --git a/src/test/jtx/utility.h b/src/test/jtx/utility.h index 7bc9fbaa8..42a2180ee 100644 --- a/src/test/jtx/utility.h +++ b/src/test/jtx/utility.h @@ -67,7 +67,7 @@ Json::Value cmdToJSONRPC( std::vector const& args, beast::Journal j, - unsigned int apiVersion = RPC::apiMaximumSupportedVersion); + unsigned int apiVersion); } // namespace jtx } // namespace test diff --git a/src/test/rpc/AccountTx_test.cpp b/src/test/rpc/AccountTx_test.cpp index fb84cf864..210fe0893 100644 --- a/src/test/rpc/AccountTx_test.cpp +++ b/src/test/rpc/AccountTx_test.cpp @@ -140,6 +140,7 @@ class AccountTx_test : public beast::unit_test::suite j[jss::result][jss::transactions][1u][jss::tx] [jss::DeliverMax]); case 2: + case 3: if (j.isMember(jss::result) && (j[jss::result][jss::status] == "success") && (j[jss::result][jss::transactions].size() == 2) && @@ -201,20 +202,22 @@ class AccountTx_test : public beast::unit_test::suite rpcACT_MALFORMED)); jParms[jss::account] = A1.human(); - BEAST_EXPECT(hasTxs(env.rpc("json", "account_tx", to_string(jParms)))); + BEAST_EXPECT(hasTxs( + env.rpc(apiVersion, "json", "account_tx", to_string(jParms)))); // Ledger min/max index { Json::Value p{jParms}; p[jss::ledger_index_min] = -1; p[jss::ledger_index_max] = -1; - BEAST_EXPECT(hasTxs(env.rpc("json", "account_tx", to_string(p)))); + BEAST_EXPECT(hasTxs( + env.rpc(apiVersion, "json", "account_tx", to_string(p)))); p[jss::ledger_index_min] = 0; p[jss::ledger_index_max] = 100; if (apiVersion < 2u) - BEAST_EXPECT( - hasTxs(env.rpc("json", "account_tx", to_string(p)))); + BEAST_EXPECT(hasTxs( + env.rpc(apiVersion, "json", "account_tx", to_string(p)))); else BEAST_EXPECT(isErr( env.rpc("json", "account_tx", to_string(p)), @@ -241,12 +244,13 @@ class AccountTx_test : public beast::unit_test::suite { Json::Value p{jParms}; p[jss::ledger_index_min] = -1; - BEAST_EXPECT(hasTxs(env.rpc("json", "account_tx", to_string(p)))); + BEAST_EXPECT(hasTxs( + env.rpc(apiVersion, "json", "account_tx", to_string(p)))); p[jss::ledger_index_min] = 1; if (apiVersion < 2u) - BEAST_EXPECT( - hasTxs(env.rpc("json", "account_tx", to_string(p)))); + BEAST_EXPECT(hasTxs( + env.rpc(apiVersion, "json", "account_tx", to_string(p)))); else BEAST_EXPECT(isErr( env.rpc("json", "account_tx", to_string(p)), @@ -263,22 +267,25 @@ class AccountTx_test : public beast::unit_test::suite { Json::Value p{jParms}; p[jss::ledger_index_max] = -1; - BEAST_EXPECT(hasTxs(env.rpc("json", "account_tx", to_string(p)))); + BEAST_EXPECT(hasTxs( + env.rpc(apiVersion, "json", "account_tx", to_string(p)))); p[jss::ledger_index_max] = env.current()->info().seq; if (apiVersion < 2u) - BEAST_EXPECT( - hasTxs(env.rpc("json", "account_tx", to_string(p)))); + BEAST_EXPECT(hasTxs( + env.rpc(apiVersion, "json", "account_tx", to_string(p)))); else BEAST_EXPECT(isErr( env.rpc("json", "account_tx", to_string(p)), rpcLGR_IDX_MALFORMED)); p[jss::ledger_index_max] = 3; - BEAST_EXPECT(hasTxs(env.rpc("json", "account_tx", to_string(p)))); + BEAST_EXPECT(hasTxs( + env.rpc(apiVersion, "json", "account_tx", to_string(p)))); p[jss::ledger_index_max] = env.closed()->info().seq; - BEAST_EXPECT(hasTxs(env.rpc("json", "account_tx", to_string(p)))); + BEAST_EXPECT(hasTxs( + env.rpc(apiVersion, "json", "account_tx", to_string(p)))); p[jss::ledger_index_max] = env.closed()->info().seq - 1; BEAST_EXPECT(noTxs(env.rpc("json", "account_tx", to_string(p)))); @@ -289,7 +296,8 @@ class AccountTx_test : public beast::unit_test::suite Json::Value p{jParms}; p[jss::ledger_index] = env.closed()->info().seq; - BEAST_EXPECT(hasTxs(env.rpc("json", "account_tx", to_string(p)))); + BEAST_EXPECT(hasTxs( + env.rpc(apiVersion, "json", "account_tx", to_string(p)))); p[jss::ledger_index] = env.closed()->info().seq - 1; BEAST_EXPECT(noTxs(env.rpc("json", "account_tx", to_string(p)))); @@ -309,7 +317,8 @@ class AccountTx_test : public beast::unit_test::suite Json::Value p{jParms}; p[jss::ledger_hash] = to_string(env.closed()->info().hash); - BEAST_EXPECT(hasTxs(env.rpc("json", "account_tx", to_string(p)))); + BEAST_EXPECT(hasTxs( + env.rpc(apiVersion, "json", "account_tx", to_string(p)))); p[jss::ledger_hash] = to_string(env.closed()->info().parentHash); BEAST_EXPECT(noTxs(env.rpc("json", "account_tx", to_string(p)))); @@ -327,8 +336,8 @@ class AccountTx_test : public beast::unit_test::suite p[jss::ledger_index] = -1; if (apiVersion < 2u) - BEAST_EXPECT( - hasTxs(env.rpc("json", "account_tx", to_string(p)))); + BEAST_EXPECT(hasTxs( + env.rpc(apiVersion, "json", "account_tx", to_string(p)))); else BEAST_EXPECT(isErr( env.rpc("json", "account_tx", to_string(p)), @@ -340,8 +349,8 @@ class AccountTx_test : public beast::unit_test::suite Json::Value p{jParms}; p[jss::ledger_index_max] = env.current()->info().seq; if (apiVersion < 2u) - BEAST_EXPECT( - hasTxs(env.rpc("json", "account_tx", to_string(p)))); + BEAST_EXPECT(hasTxs( + env.rpc(apiVersion, "json", "account_tx", to_string(p)))); else BEAST_EXPECT(isErr( env.rpc("json", "account_tx", to_string(p)), diff --git a/src/test/rpc/LedgerRequestRPC_test.cpp b/src/test/rpc/LedgerRequestRPC_test.cpp index d19e9f811..a2aa388e8 100644 --- a/src/test/rpc/LedgerRequestRPC_test.cpp +++ b/src/test/rpc/LedgerRequestRPC_test.cpp @@ -24,6 +24,8 @@ #include #include +#include + namespace ripple { namespace RPC { @@ -263,7 +265,7 @@ public: } void - testBadInput() + testBadInput(unsigned apiVersion) { using namespace test::jtx; Env env{*this}; @@ -287,9 +289,9 @@ public: // the purpose in this test is to force the ledger expiration/out of // date check to trigger env.timeKeeper().adjustCloseTime(weeks{3}); - result = env.rpc("ledger_request", "1")[jss::result]; + result = env.rpc(apiVersion, "ledger_request", "1")[jss::result]; BEAST_EXPECT(result[jss::status] == "error"); - if (RPC::apiMaximumSupportedVersion == 1) + if (apiVersion == 1) { BEAST_EXPECT(result[jss::error] == "noCurrent"); BEAST_EXPECT( @@ -357,7 +359,8 @@ public: { testLedgerRequest(); testEvolution(); - testBadInput(); + test::jtx::forAllApiVersions( + std::bind_front(&LedgerRequestRPC_test::testBadInput, this)); testMoreThan256Closed(); testNonAdmin(); } diff --git a/src/test/rpc/RPCCall_test.cpp b/src/test/rpc/RPCCall_test.cpp index 3bb67d5c0..a5d6ca747 100644 --- a/src/test/rpc/RPCCall_test.cpp +++ b/src/test/rpc/RPCCall_test.cpp @@ -24,6 +24,8 @@ #include #include + +#include #include #include @@ -42,7 +44,7 @@ struct RPCCallTestData Exception const throwsWhat; // Expected JSON response. - char const* const exp; + std::vector exp; RPCCallTestData( char const* description_, @@ -54,6 +56,20 @@ struct RPCCallTestData , line(line_) , args(args_) , throwsWhat(throwsWhat_) + , exp(1, exp_) + { + } + + RPCCallTestData( + char const* description_, + int line_, + std::initializer_list const& args_, + Exception throwsWhat_, + std::initializer_list exp_) + : description(description_) + , line(line_) + , args(args_) + , throwsWhat(throwsWhat_) , exp(exp_) { } @@ -78,7 +94,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_channels", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" } ] @@ -93,7 +109,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_channels", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "destination_account" : "rD5MbavGfiSC5m7mkxy1FANuT7s3HxqpoF" } @@ -109,7 +125,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_channels", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "destination_account" : "r9emE59aTWb85t64dAebKrxYMBTpzK5yR7" } @@ -125,7 +141,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_channels", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "destination_account" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA" } @@ -142,7 +158,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_channels", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "destination_account" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA", "ledger_hash" : "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" @@ -160,7 +176,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_channels", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "destination_account" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA", "ledger_index" : 90210 @@ -229,7 +245,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_currencies", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" } ] @@ -242,7 +258,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_currencies", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "racb4o3DrdYxuCfyVa6vsLb7vgju9RFbBr" } ] @@ -255,7 +271,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_currencies", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 42 } @@ -269,7 +285,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_currencies", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : "validated" } @@ -284,7 +300,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "params" : [ { "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : "current" } ] @@ -331,7 +347,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_currencies", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 0 } @@ -367,7 +383,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" } ] @@ -380,7 +396,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 77777 } @@ -394,7 +410,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : "closed" } @@ -410,7 +426,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_hash" : "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" } @@ -425,7 +441,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "params" : [ { "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : "validated" } ] @@ -494,7 +510,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_lines", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", } ] @@ -509,7 +525,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_lines", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "peer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA" } @@ -526,7 +542,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_lines", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 888888888, "peer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA" @@ -544,7 +560,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_lines", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : "closed", "peer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA" @@ -562,7 +578,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_lines", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_hash" : "FFFFEEEEDDDDCCCCBBBBAAAA9999888877776666555544443333222211110000", "peer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA" @@ -598,7 +614,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_lines", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 12345678, "peer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA" @@ -619,7 +635,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_lines", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 12345678, "peer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA" @@ -678,7 +694,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_lines", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" } ] @@ -696,7 +712,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_lines", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 0, "peer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA" @@ -715,7 +731,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_objects", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" } ] @@ -728,7 +744,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_objects", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 77777 } @@ -742,7 +758,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_objects", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : "closed" } @@ -758,7 +774,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_objects", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_hash" : "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" } @@ -772,7 +788,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_objects", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : "validated" } @@ -809,7 +825,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_objects", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" } ] @@ -830,7 +846,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_objects", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" } ] @@ -887,7 +903,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_objects", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 0 } @@ -905,7 +921,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_objects", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 0 } @@ -923,7 +939,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" } ] @@ -936,7 +952,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 987654321 } @@ -950,7 +966,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : "validated" } @@ -966,7 +982,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_hash" : "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" } @@ -980,7 +996,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : "validated" } @@ -1014,7 +1030,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" } ] @@ -1070,7 +1086,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 0 } @@ -1088,7 +1104,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 0 } @@ -1106,7 +1122,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", } ] @@ -1119,7 +1135,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 444 } @@ -1138,7 +1154,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "count" : true, "binary" : true, @@ -1155,7 +1171,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index_max" : -1, "ledger_index_min" : -1 @@ -1176,7 +1192,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "binary" : true, "count" : true, @@ -1194,7 +1210,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index_max" : -1, "ledger_index_min" : 247, @@ -1217,7 +1233,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "binary" : true, "count" : true, @@ -1241,7 +1257,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index_max" : 590, "ledger_index_min" : 589, @@ -1265,7 +1281,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "count" : true, "descending" : true, @@ -1341,7 +1357,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "account_tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 0 } @@ -1353,8 +1369,8 @@ static RPCCallTestData const rpcCallTestArray[] = { __LINE__, {"account_tx", "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "580", "579"}, RPCCallTestData::no_exception, - RPC::apiMaximumSupportedVersion == 1 ? - R"({ + { + R"({ "method" : "account_tx", "params" : [ { @@ -1363,9 +1379,8 @@ static RPCCallTestData const rpcCallTestArray[] = { "error_message" : "Ledger indexes invalid." } ] - })" - : - R"({ + })", + R"({ "method" : "account_tx", "params" : [ { @@ -1374,7 +1389,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "error_message" : "Not synced to the network." } ] - })", + })"}, }, { // Note: this really shouldn't throw, but does at the moment. @@ -1445,7 +1460,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "book_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "taker_gets" : { "currency" : "EUR" }, @@ -1467,7 +1482,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "book_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "taker_gets" : { "currency" : "EUR", "issuer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA" @@ -1489,7 +1504,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "book_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "issuer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA", "taker_gets" : { "currency" : "EUR" @@ -1512,7 +1527,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "book_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "issuer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA", "ledger_index" : 666, "taker_gets" : { @@ -1537,7 +1552,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "book_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "issuer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA", "ledger_index" : "current", "taker_gets" : { @@ -1562,7 +1577,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "book_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "issuer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA", "ledger_hash" : "ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789", "taker_gets" : { @@ -1593,7 +1608,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "book_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "issuer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA", "ledger_hash" : "ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789", "limit" : 200, @@ -1625,7 +1640,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "book_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "issuer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA", "ledger_hash" : "ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789", "limit" : 200, @@ -1725,7 +1740,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "book_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "issuer" : "not_a_valid_issuer", "taker_gets" : { "currency" : "EUR" @@ -1748,7 +1763,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "book_offers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "issuer" : "rnUy2SHTrB9DubsPmkJZUXTf5FcNDGrYEA", "ledger_index" : 0, "taker_gets" : { @@ -1789,7 +1804,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "can_delete", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -1804,7 +1819,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "can_delete", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "can_delete" : 4294967295 } ] @@ -1820,7 +1835,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "can_delete", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "can_delete" : "FEDCBA9876543210FEDCBA9876543210FEDCBA9876543210FEDCBA9876543210" } ] @@ -1836,7 +1851,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "can_delete", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "can_delete" : "always" } ] @@ -1852,7 +1867,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "can_delete", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "can_delete" : "never" } ] @@ -1868,7 +1883,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "can_delete", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "can_delete" : "now" } ] @@ -1895,7 +1910,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "can_delete", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "can_delete" : "invalid" } ] @@ -1932,7 +1947,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "channel_authorize", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "amount" : "18446744073709551615", "channel_id" : "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF", "secret" : "secret_can_be_anything" @@ -2116,7 +2131,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "channel_verify", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "amount" : "0", "channel_id" : "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF", "public_key" : "aB4BXXLuPu8DpVuyq1DBiu3SrPdtK9AYZisKhu8mvkoiUD8J9Gov", @@ -2160,7 +2175,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "channel_verify", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "amount" : "18446744073709551615", "channel_id" : "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF", "public_key" : "021D93E21C44160A1B3B66DA1F37B86BE39FFEA3FC4B95FAA2063F82EE823599F6", @@ -2323,7 +2338,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "channel_verify", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "amount" : "40000000", "channel_id" : "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF", "public_key" : "aB4BXXLuPu8DpVuyq1DBiu3SrPdtK9AYZisKhu8mvkoiUD8J9Gov", @@ -2345,7 +2360,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "connect", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ip" : "ThereIsNoCheckingOnTheIPFormat" } ] @@ -2358,7 +2373,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "connect", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ip" : "ThereIsNoCheckingOnTheIPFormat", "port" : 6561 } @@ -2427,7 +2442,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "consensus_info", "params" : [ { - "api_version" : %MAX_API_VER% + "api_version" : %API_VER% } ] })"}, @@ -2460,7 +2475,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "deposit_authorized", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "destination_account" : "destination_account_NotValidated", "source_account" : "source_account_NotValidated" } @@ -2477,7 +2492,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "deposit_authorized", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "destination_account" : "destination_account_NotValidated", "ledger_index" : "validated", "source_account" : "source_account_NotValidated" @@ -2495,7 +2510,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "deposit_authorized", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "destination_account" : "destination_account_NotValidated", "ledger_index" : 4294967295, "source_account" : "source_account_NotValidated" @@ -2513,7 +2528,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "deposit_authorized", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "destination_account" : "destination_account_NotValidated", "ledger_hash" : "ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789", "source_account" : "source_account_NotValidated" @@ -2568,7 +2583,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "deposit_authorized", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "destination_account" : "destination_account_NotValidated", "ledger_index" : 0, "source_account" : "source_account_NotValidated" @@ -2590,7 +2605,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "download_shard", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "shards" : [ { "index" : 20, @@ -2612,7 +2627,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "download_shard", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "shards" : [ { "index" : 20, @@ -2640,7 +2655,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "download_shard", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "shards" : [ { "index" : 200000000, @@ -2682,7 +2697,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "download_shard", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "shards" : [ { "index" : 2000000, @@ -2741,7 +2756,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "download_shard", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "shards" : [ { "index" : 20, @@ -2813,7 +2828,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "feature", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -2825,7 +2840,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "feature", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "feature" : "featureNameOrHexIsNotValidated" } ] @@ -2841,7 +2856,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "feature", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "feature" : "FEDCBA9876543210FEDCBA9876543210FEDCBA9876543210FEDCBA9876543210FEDCBA9876543210", "vetoed" : false } @@ -2855,7 +2870,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "feature", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "feature" : "0", "vetoed" : true } @@ -2906,7 +2921,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "fetch_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -2918,7 +2933,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "fetch_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "clear" : true } ] @@ -2945,7 +2960,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "fetch_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "too" : true } ] @@ -2961,7 +2976,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "gateway_balances", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", } ] @@ -2974,7 +2989,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "gateway_balances", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : "890765" } @@ -2988,7 +3003,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "gateway_balances", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : "current" } @@ -3004,7 +3019,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "gateway_balances", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_hash" : "0123456789ABCDEFGHIJKLMNOPQRSTUV0123456789ABCDEFGHIJKLMNOPQRSTUV" } @@ -3020,7 +3035,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "gateway_balances", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "hotwallet" : [ "hotwallet_is_not_validated" ] } @@ -3041,7 +3056,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "gateway_balances", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "hotwallet" : [ "hotwallet_is_not_validated_1", @@ -3146,7 +3161,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "get_counts", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -3158,7 +3173,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "get_counts", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "min_count" : 100 } ] @@ -3205,7 +3220,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "command", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "json_argument" : true, "method" : "command" } @@ -3223,7 +3238,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "command", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "method" : "command" } ] @@ -3308,7 +3323,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "call_1", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "id" : "A1", "jsonrpc" : "2.0", "method" : "call_1", @@ -3336,7 +3351,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "call_1", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "0" : { "inner_arg" : "yup" }, @@ -3360,7 +3375,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "params" : [ [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "id" : "A1", "jsonrpc" : "2.0", "method" : "call_1", @@ -3387,7 +3402,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "params" : [ [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "0" : { "inner_arg" : "yup" }, @@ -3682,7 +3697,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -3694,7 +3709,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 4294967295 } ] @@ -3707,7 +3722,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : "validated" } ] @@ -3721,7 +3736,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_hash" : "ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789" } ] @@ -3734,7 +3749,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "full" : true, "ledger_index" : "current" } @@ -3748,7 +3763,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "expand" : true, "ledger_index" : "closed", "transactions" : true @@ -3763,7 +3778,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 4294967295 } ] @@ -3776,7 +3791,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 0 } ] @@ -3789,7 +3804,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 0 } ] @@ -3802,7 +3817,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 0 } ] @@ -3815,7 +3830,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : "current" } ] @@ -3831,7 +3846,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger_closed", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -3860,7 +3875,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger_current", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -3889,7 +3904,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger_header", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 4294967295 } ] @@ -3903,7 +3918,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger_header", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_hash" : "ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789" } ] @@ -3946,7 +3961,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger_header", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 0 } ] @@ -3959,7 +3974,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger_header", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 0 } ] @@ -3972,7 +3987,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger_header", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 0 } ] @@ -3988,7 +4003,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger_request", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 4294967295 } ] @@ -4002,7 +4017,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger_request", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_hash" : "ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789" } ] @@ -4045,7 +4060,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger_request", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 0 } ] @@ -4058,7 +4073,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger_request", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 0 } ] @@ -4071,7 +4086,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ledger_request", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 0 } ] @@ -4089,7 +4104,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "log_level", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -4101,7 +4116,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "log_level", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "severity" : "fatal" } ] @@ -4114,7 +4129,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "log_level", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "severity" : "error" } ] @@ -4127,7 +4142,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "log_level", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "severity" : "warn" } ] @@ -4140,7 +4155,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "log_level", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "severity" : "debug" } ] @@ -4153,7 +4168,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "log_level", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "severity" : "trace" } ] @@ -4166,7 +4181,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "log_level", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "partition" : "base", "severity" : "trace" } @@ -4180,7 +4195,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "log_level", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "partition" : "partition_name", "severity" : "fatal" } @@ -4208,7 +4223,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "log_level", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "severity" : "err" } ] @@ -4225,7 +4240,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "log_level", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "partition" : "fatal", "severity" : "partition_name" } @@ -4244,7 +4259,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "logrotate", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -4273,7 +4288,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "node_to_shard", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "action" : "status" } ] @@ -4286,7 +4301,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "node_to_shard", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "action" : "start" } ] @@ -4299,7 +4314,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "node_to_shard", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "action" : "stop" } ] @@ -4326,7 +4341,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "node_to_shard", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "action" : "invalid" } ] @@ -4342,7 +4357,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "owner_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" } ] @@ -4355,7 +4370,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "owner_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 987654321 } @@ -4369,7 +4384,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "owner_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : "validated" } @@ -4385,7 +4400,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "owner_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_hash" : "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" } @@ -4400,7 +4415,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "params" : [ { "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : "validated" } ] @@ -4471,7 +4486,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "owner_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "ledger_index" : 0 } @@ -4490,7 +4505,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "params" : [ { "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 0 } ] @@ -4509,7 +4524,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "peers", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -4538,7 +4553,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "peer_reservations_add", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "public_key" : "public_key_string" } ] @@ -4551,7 +4566,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "peer_reservations_add", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "description" : "public_key_description", "public_key" : "public_key_string" } @@ -4599,7 +4614,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "peer_reservations_del", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "public_key" : "public_key_string" } ] @@ -4648,7 +4663,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ping", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -4679,7 +4694,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "print", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -4692,7 +4707,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "print", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "params" : [ "extra" ] } ] @@ -4724,7 +4739,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "random", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -4756,7 +4771,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ripple_path_find", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "json_argument" : true } ] @@ -4769,7 +4784,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ripple_path_find", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "json_argument" : true, "ledger_index" : 4294967295 } @@ -4783,7 +4798,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ripple_path_find", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "json_argument" : true, "ledger_index" : "closed" } @@ -4799,7 +4814,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ripple_path_find", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "json_argument" : true, "ledger_hash" : "0123456789ABCDEFGHIJKLMNOPQRSTUV0123456789ABCDEFGHIJKLMNOPQRSTUV" } @@ -4861,7 +4876,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ripple_path_find", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "json_argument" : true, "ledger_index" : 0 } @@ -4875,7 +4890,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ripple_path_find", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "json_argument" : true, "ledger_index" : 0 } @@ -4889,7 +4904,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "ripple_path_find", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "json_argument" : true, "ledger_index" : 0 } @@ -4910,7 +4925,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "sign", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "secret" : "my_secret", "tx_json" : { "json_argument" : true @@ -4926,7 +4941,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "sign", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "offline" : true, "secret" : "my_secret", "tx_json" : { @@ -5011,7 +5026,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "sign_for", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "secret" : "my_secret", "tx_json" : { @@ -5032,7 +5047,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "sign_for", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "offline" : true, "secret" : "my_secret", @@ -5127,7 +5142,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "submit", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "tx_blob" : "the blob is unvalidated and may be any length..." } ] @@ -5144,7 +5159,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "submit", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "secret" : "my_secret", "tx_json" : { "json_argument" : true @@ -5177,7 +5192,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "submit", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "offline" : true, "secret" : "my_secret", "tx_json" : { @@ -5246,7 +5261,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "submit_multisigned", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "tx_json" : { "json_argument" : true } @@ -5314,7 +5329,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "server_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -5326,7 +5341,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "server_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "counters" : true } ] @@ -5353,7 +5368,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "server_info", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -5370,7 +5385,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "server_state", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -5382,7 +5397,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "server_state", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "counters" : true } ] @@ -5409,7 +5424,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "server_state", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -5426,7 +5441,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "stop", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -5457,7 +5472,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "transaction_entry", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : 4294967295, "tx_hash" : "0123456789ABCDEFGHIJKLMNOPQRSTUV0123456789ABCDEFGHIJKLMNOPQRSTUV" } @@ -5473,7 +5488,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "transaction_entry", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_index" : "current", "tx_hash" : "0123456789ABCDEFGHIJKLMNOPQRSTUV0123456789ABCDEFGHIJKLMNOPQRSTUV" } @@ -5489,7 +5504,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "transaction_entry", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ledger_hash" : "VUTSRQPONMLKJIHGFEDCBA9876543210VUTSRQPONMLKJIHGFEDCBA9876543210", "tx_hash" : "0123456789ABCDEFGHIJKLMNOPQRSTUV0123456789ABCDEFGHIJKLMNOPQRSTUV" } @@ -5648,7 +5663,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "ctid" : "FFFFFFFFFFFFFFFF", "max_ledger" : "2", "min_ledger" : "1" @@ -5663,7 +5678,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "binary" : true, "ctid" : "FFFFFFFFFFFFFFFF", "max_ledger" : "2", @@ -5679,7 +5694,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "transaction" : "transaction_hash_is_not_validated" } ] @@ -5692,7 +5707,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "binary" : true, "transaction" : "transaction_hash_is_not_validated" } @@ -5736,313 +5751,12 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "tx", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "transaction" : "transaction_hash_is_not_validated" } ] })"}, - // tx_account - // ------------------------------------------------------------------ - {"tx_account: minimal.", - __LINE__, - {"tx_account", "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"}, - RPCCallTestData::no_exception, - R"({ - "method" : "tx_account", - "params" : [ - { - "api_version" : %MAX_API_VER%, - "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - } - ] - })"}, - {"tx_account: ledger_index .", - __LINE__, - {"tx_account", "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "4294967295"}, - RPCCallTestData::no_exception, - R"({ - "method" : "tx_account", - "params" : [ - { - "api_version" : %MAX_API_VER%, - "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "ledger_index" : 4294967295 - } - ] - })"}, - {"tx_account: ledger_index plus trailing params.", - __LINE__, - {"tx_account", - "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "707", - "forward", - "binary", - "count"}, - RPCCallTestData::no_exception, - R"({ - "method" : "tx_account", - "params" : [ - { - "api_version" : %MAX_API_VER%, - "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "binary" : true, - "count" : true, - "forward" : true, - "ledger_index" : 707 - } - ] - })"}, - {"tx_account: ledger_index_min and _max.", - __LINE__, - {"tx_account", - "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "2147483647", - "2147483647"}, - RPCCallTestData::no_exception, - R"({ - "method" : "tx_account", - "params" : [ - { - "api_version" : %MAX_API_VER%, - "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "ledger_index_max" : 2147483647, - "ledger_index_min" : 2147483647 - } - ] - })"}, - {"tx_account: ledger_index_min and _max plus trailing params.", - __LINE__, - {"tx_account", - "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "33333", - "2147483647", - "binary", - "count", - "forward"}, - RPCCallTestData::no_exception, - R"({ - "method" : "tx_account", - "params" : [ - { - "api_version" : %MAX_API_VER%, - "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "binary" : true, - "count" : true, - "forward" : true, - "ledger_index_max" : 2147483647, - "ledger_index_min" : 33333 - } - ] - })"}, - {"tx_account: ledger_index_min and _max plus limit.", - __LINE__, - {"tx_account", - "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "-1", - "2147483647", - "2147483647"}, - RPCCallTestData::no_exception, - R"({ - "method" : "tx_account", - "params" : [ - { - "api_version" : %MAX_API_VER%, - "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "ledger_index_max" : 2147483647, - "ledger_index_min" : -1, - "limit" : 2147483647 - } - ] - })"}, - {"tx_account: ledger_index_min and _max, limit, trailing args.", - __LINE__, - {"tx_account", - "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "1", - "1", - "-1", - "count", - "forward", - "binary"}, - RPCCallTestData::no_exception, - R"({ - "method" : "tx_account", - "params" : [ - { - "api_version" : %MAX_API_VER%, - "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "binary" : true, - "count" : true, - "forward" : true, - "ledger_index_max" : 1, - "ledger_index_min" : 1, - "limit" : -1 - } - ] - })"}, - {"tx_account: too few arguments.", - __LINE__, - { - "tx_account", - }, - RPCCallTestData::no_exception, - R"({ - "method" : "tx_account", - "params" : [ - { - "error" : "badSyntax", - "error_code" : 1, - "error_message" : "Syntax error." - } - ] - })"}, - {"tx_account: too many arguments.", - __LINE__, - {"tx_account", - "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "589", - "590", - "67", - "extra", - "descending", - "count", - "binary"}, - RPCCallTestData::no_exception, - R"({ - "method" : "tx_account", - "params" : [ - { - "error" : "badSyntax", - "error_code" : 1, - "error_message" : "Syntax error." - } - ] - })"}, - { - "tx_account: invalid accountID.", - __LINE__, - {"tx_account", "rHb9CJAWyB4rj9!VRWn96DkukG4bwdtyTh"}, - RPCCallTestData::no_exception, - R"({ - "method" : "tx_account", - "params" : [ - { - "error" : "actMalformed", - "error_code" : 35, - "error_message" : "Account malformed." - } - ] - })", - }, - { - // Note: not currently detected as bad input. - "tx_account: invalid ledger.", - __LINE__, - {"tx_account", "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "-478.7"}, - RPCCallTestData::no_exception, - R"({ - "method" : "tx_account", - "params" : [ - { - "api_version" : %MAX_API_VER%, - "account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "ledger_index" : 0 - } - ] - })", - }, - { - "tx_account: max less than min.", - __LINE__, - {"tx_account", "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "580", "579"}, - RPCCallTestData::no_exception, - RPC::apiMaximumSupportedVersion == 1 ? - R"({ - "method" : "tx_account", - "params" : [ - { - "error" : "lgrIdxsInvalid", - "error_code" : 55, - "error_message" : "Ledger indexes invalid." - } - ] - })" - : - R"({ - "method" : "tx_account", - "params" : [ - { - "error" : "notSynced", - "error_code" : 55, - "error_message" : "Not synced to the network." - } - ] - })", - }, - { - // Note: this really shouldn't throw, but does at the moment. - "tx_account: min large but still valid.", - __LINE__, - {"tx_account", - "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "2147483648", - "2147483648"}, - RPCCallTestData::bad_cast, - R"()", - }, - { - // Note: this really shouldn't throw, but does at the moment. - "tx_account: max large but still valid.", - __LINE__, - {"tx_account", - "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "2147483647", - "2147483648"}, - RPCCallTestData::bad_cast, - R"()", - }, - { - // Note: this really shouldn't throw, but does at the moment. - "tx_account: large limit.", - __LINE__, - {"tx_account", - "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "-1", - "-1", - "2147483648"}, - RPCCallTestData::bad_cast, - R"()", - }, - { - // Note: this really shouldn't throw, but does at the moment. - "tx_account: non-integer min.", - __LINE__, - {"tx_account", "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "Binary", "-1"}, - RPCCallTestData::bad_cast, - R"()", - }, - { - // Note: this really shouldn't throw, but does at the moment. - "tx_account: non-integer max.", - __LINE__, - {"tx_account", "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "-1", "counts"}, - RPCCallTestData::bad_cast, - R"()", - }, - { - // Note: this really shouldn't throw, but does at the moment. - "tx_account: non-integer limit.", - __LINE__, - {"tx_account", - "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "-1", - "-1", - "decending"}, - RPCCallTestData::bad_cast, - R"()", - }, - // tx_history // ------------------------------------------------------------------ {"tx_history: minimal.", @@ -6053,7 +5767,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "tx_history", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "start" : 0 } ] @@ -6125,7 +5839,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "unl_list", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -6156,7 +5870,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "validation_create", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -6168,7 +5882,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "validation_create", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "secret" : "the form of the secret is not validated" } ] @@ -6200,7 +5914,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "version", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -6231,7 +5945,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "wallet_propose", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -6243,7 +5957,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "wallet_propose", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "passphrase" : "the form of the passphrase is not validated" } ] @@ -6273,7 +5987,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "internal", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "internal_command" : "command_name", "params" : [] } @@ -6293,7 +6007,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "internal", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "internal_command" : "command_name", "params" : [ "string_arg", "1", "-1", "4294967296", "3.14159" ] } @@ -6427,7 +6141,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "unknown_command", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, } ] })"}, @@ -6439,7 +6153,7 @@ static RPCCallTestData const rpcCallTestArray[] = { "method" : "unknown_command", "params" : [ { - "api_version" : %MAX_API_VER%, + "api_version" : %API_VER%, "params" : [ "string_arg", "1", "-1", "4294967296", "3.14159" ] } ] @@ -6447,11 +6161,10 @@ static RPCCallTestData const rpcCallTestArray[] = { }; std::string -updateAPIVersionString(const char* const req) +updateAPIVersionString(const char* const req, unsigned apiVersion) { - static std::string version_str = - std::to_string(RPC::apiMaximumSupportedVersion); - static auto place_holder = "%MAX_API_VER%"; + std::string const version_str = std::to_string(apiVersion); + static auto const place_holder = "%API_VER%"; std::string jr(req); boost::replace_all(jr, place_holder, version_str); return jr; @@ -6471,9 +6184,13 @@ class RPCCall_test : public beast::unit_test::suite { public: void - testRPCCall() + testRPCCall(unsigned apiVersion) { - testcase << "RPCCall"; + testcase << "RPCCall API version " << apiVersion; + if (!BEAST_EXPECT( + apiVersion >= RPC::apiMinimumSupportedVersion && + apiVersion <= RPC::apiMaximumValidVersion)) + return; test::jtx::Env env( *this, makeNetworkConfig(11111)); // Used only for its Journal. @@ -6481,20 +6198,29 @@ public: // For each RPCCall test. for (RPCCallTestData const& rpcCallTest : rpcCallTestArray) { + if (!BEAST_EXPECT(!rpcCallTest.exp.empty())) + break; + std::vector const args{ rpcCallTest.args.begin(), rpcCallTest.args.end()}; + const char* const expVersioned = + (apiVersion - RPC::apiMinimumSupportedVersion) < + rpcCallTest.exp.size() + ? rpcCallTest.exp[apiVersion - RPC::apiMinimumSupportedVersion] + : rpcCallTest.exp.back(); + // Note that, over the long term, none of these tests should // throw. But, for the moment, some of them do. So handle it. Json::Value got; try { - got = jtx::cmdToJSONRPC(args, env.journal); + got = jtx::cmdToJSONRPC(args, env.journal, apiVersion); } catch (std::bad_cast const&) { if ((rpcCallTest.throwsWhat == RPCCallTestData::bad_cast) && - (std::strlen(rpcCallTest.exp) == 0)) + (std::strlen(expVersioned) == 0)) { pass(); } @@ -6507,7 +6233,8 @@ public: } Json::Value exp; - Json::Reader{}.parse(updateAPIVersionString(rpcCallTest.exp), exp); + Json::Reader{}.parse( + updateAPIVersionString(expVersioned, apiVersion), exp); // Lambda to remove the "params[0u]:error_code" field if present. // Error codes are not expected to be stable between releases. @@ -6538,7 +6265,8 @@ public: void run() override { - testRPCCall(); + test::jtx::forAllApiVersions( + std::bind_front(&RPCCall_test::testRPCCall, this)); } }; diff --git a/src/test/rpc/TransactionEntry_test.cpp b/src/test/rpc/TransactionEntry_test.cpp index 2786e113b..040ffad90 100644 --- a/src/test/rpc/TransactionEntry_test.cpp +++ b/src/test/rpc/TransactionEntry_test.cpp @@ -230,22 +230,20 @@ class TransactionEntry_test : public beast::unit_test::suite } // Use the command line form with the index. - if (apiVersion == RPC::apiMaximumSupportedVersion) - { - Json::Value const clIndex{env.rpc( - "transaction_entry", txhash, std::to_string(index))}; - BEAST_EXPECT(clIndex["result"] == resIndex); - } + Json::Value const clIndex{env.rpc( + apiVersion, + "transaction_entry", + txhash, + std::to_string(index))}; + BEAST_EXPECT(clIndex["result"] == resIndex); // Use the command line form with the ledger_hash. - if (apiVersion == RPC::apiMaximumSupportedVersion) - { - Json::Value const clHash{env.rpc( - "transaction_entry", - txhash, - resIndex[jss::ledger_hash].asString())}; - BEAST_EXPECT(clHash["result"] == resIndex); - } + Json::Value const clHash{env.rpc( + apiVersion, + "transaction_entry", + txhash, + resIndex[jss::ledger_hash].asString())}; + BEAST_EXPECT(clHash["result"] == resIndex); }; Account A1{"A1"};