diff --git a/API-CHANGELOG.md b/API-CHANGELOG.md index 8ecfd23e85..419f60acb3 100644 --- a/API-CHANGELOG.md +++ b/API-CHANGELOG.md @@ -89,6 +89,12 @@ This release contains bug fixes only and no API changes. This release contains bug fixes only and no API changes. +## Unreleased Changes + +### Additions and bugfixes + +- `submit`: Augmented response fields (`accepted`, `applied`, `broadcast`, `queued`, `kept`, `account_sequence_next`, `account_sequence_available`, `open_ledger_cost`, `validated_ledger_index`) are now included in sign-and-submit mode. Previously, these fields were only returned when submitting a binary transaction blob. ([#6304](https://github.com/XRPLF/rippled/pull/6304)) + ## XRP Ledger server version 2.5.0 [Version 2.5.0](https://github.com/XRPLF/rippled/releases/tag/2.5.0) was released on Jun 24, 2025. diff --git a/src/test/rpc/Submit_test.cpp b/src/test/rpc/Submit_test.cpp index d317a3284b..441425beff 100644 --- a/src/test/rpc/Submit_test.cpp +++ b/src/test/rpc/Submit_test.cpp @@ -15,16 +15,16 @@ public: testcase("Augmented fields in sign-and-submit mode"); using namespace test::jtx; - + // Enable signing support in config Env env{*this, envconfig([](std::unique_ptr cfg) { cfg->loadFromString("[" SECTION_SIGNING_SUPPORT "]\ntrue"); return cfg; })}; - + Account const alice{"alice"}; Account const bob{"bob"}; - + env.fund(XRP(10000), alice, bob); env.close(); @@ -36,27 +36,27 @@ public: jv[jss::tx_json][jss::Destination] = bob.human(); jv[jss::tx_json][jss::Amount] = XRP(100).value().getJson(JsonOptions::none); jv[jss::secret] = alice.name(); - + auto const result = env.rpc("json", "submit", to_string(jv))[jss::result]; - + // These are the augmented fields that should be present BEAST_EXPECT(result.isMember(jss::engine_result)); BEAST_EXPECT(result.isMember(jss::engine_result_code)); BEAST_EXPECT(result.isMember(jss::engine_result_message)); - + // New augmented fields from issue #3125 BEAST_EXPECT(result.isMember(jss::accepted)); BEAST_EXPECT(result.isMember(jss::applied)); BEAST_EXPECT(result.isMember(jss::broadcast)); BEAST_EXPECT(result.isMember(jss::queued)); BEAST_EXPECT(result.isMember(jss::kept)); - + // Current ledger state fields BEAST_EXPECT(result.isMember(jss::account_sequence_next)); BEAST_EXPECT(result.isMember(jss::account_sequence_available)); BEAST_EXPECT(result.isMember(jss::open_ledger_cost)); BEAST_EXPECT(result.isMember(jss::validated_ledger_index)); - + // Verify basic transaction fields BEAST_EXPECT(result.isMember(jss::tx_blob)); BEAST_EXPECT(result.isMember(jss::tx_json)); @@ -67,9 +67,9 @@ public: auto jt = env.jt(pay(alice, bob, XRP(100))); Serializer s; jt.stx->add(s); - + auto const result = env.rpc("submit", strHex(s.slice()))[jss::result]; - + // Verify augmented fields are present in binary mode too BEAST_EXPECT(result.isMember(jss::engine_result)); BEAST_EXPECT(result.isMember(jss::accepted));