From 20bce6494638cc42c4ede51bfadce7328efdaace Mon Sep 17 00:00:00 2001 From: tequ Date: Mon, 15 Sep 2025 19:09:57 +0900 Subject: [PATCH] test AccountDelete for sponsorship --- include/xrpl/protocol/jss.h | 1 + src/test/app/Sponsor_test.cpp | 9 ++++++++- src/test/jtx/impl/sponsor.cpp | 13 +++++++++++++ src/test/jtx/sponsor.h | 6 ++++++ src/xrpld/rpc/handlers/LedgerEntry.cpp | 12 ++++++------ 5 files changed, 34 insertions(+), 7 deletions(-) diff --git a/include/xrpl/protocol/jss.h b/include/xrpl/protocol/jss.h index ecad01fa48..07b9e58927 100644 --- a/include/xrpl/protocol/jss.h +++ b/include/xrpl/protocol/jss.h @@ -581,6 +581,7 @@ JSS(source_amount); // in: PathRequest, RipplePathFind JSS(source_currencies); // in: PathRequest, RipplePathFind JSS(source_tag); // out: AccountChannels JSS(sponsee); // in: LedgerEntry +JSS(sponsor); // in: LedgerEntry JSS(stand_alone); // out: NetworkOPs JSS(standard_deviation); // out: get_aggregate_price JSS(start); // in: TxHistory diff --git a/src/test/app/Sponsor_test.cpp b/src/test/app/Sponsor_test.cpp index 2d13b3a0fb..cdf8562ffe 100644 --- a/src/test/app/Sponsor_test.cpp +++ b/src/test/app/Sponsor_test.cpp @@ -1153,6 +1153,13 @@ public: auto const requiredFee = drops(env.current()->fees().increment); env(acctdelete(alice, bob), fee(requiredFee), ter(tesSUCCESS)); env.close(); + + BEAST_EXPECT(!env.le(keylet)); + auto const jv = sponsor::ledgerEntry(env, sponsor, alice); + BEAST_EXPECT( + jv.isObject() && jv.isMember(jss::result) && + jv[jss::result].isMember(jss::error) && + jv[jss::result][jss::error] == "entryNotFound"); } { @@ -1229,7 +1236,7 @@ public: testSponsorReserve(); testDisallowIncoming(); - // testAccountDelete(); + testAccountDelete(); } }; diff --git a/src/test/jtx/impl/sponsor.cpp b/src/test/jtx/impl/sponsor.cpp index 8286b52cc8..551a408ae1 100644 --- a/src/test/jtx/impl/sponsor.cpp +++ b/src/test/jtx/impl/sponsor.cpp @@ -193,6 +193,19 @@ msig::operator()(Env& env, JTx& jt) const }; } +Json::Value +ledgerEntry( + jtx::Env& env, + jtx::Account const& sponsor, + jtx::Account const& sponsee) +{ + Json::Value jvParams; + jvParams[jss::ledger_index] = jss::validated; + jvParams[jss::sponsorship][jss::sponsor] = sponsor.human(); + jvParams[jss::sponsorship][jss::sponsee] = sponsee.human(); + return env.rpc("json", "ledger_entry", to_string(jvParams)); +} + } // namespace sponsor } // namespace jtx } // namespace test diff --git a/src/test/jtx/sponsor.h b/src/test/jtx/sponsor.h index a5dcc88872..faab0bfb8c 100644 --- a/src/test/jtx/sponsor.h +++ b/src/test/jtx/sponsor.h @@ -118,6 +118,12 @@ public: operator()(jtx::Env&, jtx::JTx& jtx) const; }; +Json::Value +ledgerEntry( + jtx::Env& env, + jtx::Account const& sponsor, + jtx::Account const& sponsee); + } // namespace sponsor } // namespace jtx } // namespace test diff --git a/src/xrpld/rpc/handlers/LedgerEntry.cpp b/src/xrpld/rpc/handlers/LedgerEntry.cpp index 930c54d49f..b7a47ffab3 100644 --- a/src/xrpld/rpc/handlers/LedgerEntry.cpp +++ b/src/xrpld/rpc/handlers/LedgerEntry.cpp @@ -637,17 +637,17 @@ parseSponsorship(Json::Value const& params, Json::StaticString const fieldName) return parseObjectID(params, fieldName); } - auto const id = LedgerEntryHelpers::requiredAccountID( - params, jss::owner, "malformedOwner"); - if (!id) - return Unexpected(id.error()); + auto const sponsor = LedgerEntryHelpers::requiredAccountID( + params, jss::sponsor, "malformedSponsor"); + if (!sponsor) + return Unexpected(sponsor.error()); auto const sponsee = LedgerEntryHelpers::requiredAccountID( - params, jss::sponsee, "malformedAddress"); + params, jss::sponsee, "malformedSponsee"); if (!sponsee) return Unexpected(sponsee.error()); - return keylet::sponsor(*id, *sponsee).key; + return keylet::sponsor(*sponsor, *sponsee).key; } static Expected