From 8e895a3e7dd785868c17fe0eac6c587ebb357a20 Mon Sep 17 00:00:00 2001 From: tequ Date: Sat, 13 Sep 2025 09:49:30 +0900 Subject: [PATCH] fullly rename --- include/xrpl/protocol/TxFlags.h | 4 +- .../xrpl/protocol/detail/transactions.macro | 4 +- src/test/app/Sponsor_test.cpp | 8 ++-- src/test/jtx/impl/sponsor.cpp | 6 +-- src/xrpld/app/tx/detail/DeleteAccount.cpp | 4 +- .../{SponsorSet.cpp => SponsorshipSet.cpp} | 40 ++++++++++++++++--- .../{SponsorTransfer.h => SponsorshipSet.h} | 15 +++++-- ...orTransfer.cpp => SponsorshipTransfer.cpp} | 8 ++-- .../{SponsorSet.h => SponsorshipTransfer.h} | 8 ++-- src/xrpld/app/tx/detail/applySteps.cpp | 4 +- 10 files changed, 69 insertions(+), 32 deletions(-) rename src/xrpld/app/tx/detail/{SponsorSet.cpp => SponsorshipSet.cpp} (89%) rename src/xrpld/app/tx/detail/{SponsorTransfer.h => SponsorshipSet.h} (78%) rename src/xrpld/app/tx/detail/{SponsorTransfer.cpp => SponsorshipTransfer.cpp} (98%) rename src/xrpld/app/tx/detail/{SponsorSet.h => SponsorshipTransfer.h} (86%) diff --git a/include/xrpl/protocol/TxFlags.h b/include/xrpl/protocol/TxFlags.h index 1216bfe791..bcc869830c 100644 --- a/include/xrpl/protocol/TxFlags.h +++ b/include/xrpl/protocol/TxFlags.h @@ -255,13 +255,13 @@ constexpr std::uint32_t tfIndependent = 0x00080000; constexpr std::uint32_t const tfBatchMask = ~(tfUniversal | tfAllOrNothing | tfOnlyOne | tfUntilFailure | tfIndependent) | tfInnerBatchTxn; -// SponsorSet flags: +// SponsorshipSet flags: constexpr std::uint32_t tfSponsorshipSetRequireSignForFee = 0x00010000; constexpr std::uint32_t tfSponsorshipClearRequireSignForFee = 0x00020000; constexpr std::uint32_t tfSponsorshipSetRequireSignForReserve = 0x00040000; constexpr std::uint32_t tfSponsorshipClearRequireSignForReserve = 0x00080000; constexpr std::uint32_t tfDeleteObject = 0x00100000; -constexpr std::uint32_t tfSponsorSetMask = ~(tfUniversal | tfSponsorshipSetRequireSignForFee | tfSponsorshipClearRequireSignForFee | tfSponsorshipSetRequireSignForReserve | tfSponsorshipClearRequireSignForReserve | tfDeleteObject); +constexpr std::uint32_t tfSponsorshipSetMask = ~(tfUniversal | tfSponsorshipSetRequireSignForFee | tfSponsorshipClearRequireSignForFee | tfSponsorshipSetRequireSignForReserve | tfSponsorshipClearRequireSignForReserve | tfDeleteObject); // clang-format on diff --git a/include/xrpl/protocol/detail/transactions.macro b/include/xrpl/protocol/detail/transactions.macro index 997e70013f..b6c114f5a2 100644 --- a/include/xrpl/protocol/detail/transactions.macro +++ b/include/xrpl/protocol/detail/transactions.macro @@ -527,12 +527,12 @@ TRANSACTION(ttBATCH, 71, Batch, Delegation::notDelegatable, ({ })) /** This transaction transfer sponsorship */ -TRANSACTION(ttSPONSORSHIP_TRANSFER, 72, SponsorTransfer, Delegation::notDelegatable, ({ +TRANSACTION(ttSPONSORSHIP_TRANSFER, 72, SponsorshipTransfer, Delegation::notDelegatable, ({ {sfObjectID, soeOPTIONAL}, })) /** This transaction create sponsorship object */ -TRANSACTION(ttSPONSORSHIP_SET, 73, SponsorSet, Delegation::notDelegatable, ({ +TRANSACTION(ttSPONSORSHIP_SET, 73, SponsorshipSet, Delegation::notDelegatable, ({ {sfSponsorAccount, soeOPTIONAL}, {sfSponsee, soeREQUIRED}, {sfFeeAmount, soeOPTIONAL}, diff --git a/src/test/app/Sponsor_test.cpp b/src/test/app/Sponsor_test.cpp index 68fb63ee88..319f9f6ba2 100644 --- a/src/test/app/Sponsor_test.cpp +++ b/src/test/app/Sponsor_test.cpp @@ -53,9 +53,9 @@ public: } void - testInvalidSponsorSet() + testInvalidSponsorshipSet() { - testcase("Invalid SponsorSet"); + testcase("Invalid SponsorshipSet"); using namespace test::jtx; Env env{*this, testable_amendments()}; Account const alice("alice"); @@ -75,7 +75,7 @@ public: // Invalid flags { env(sponsor::set( - sponsor, alice, ~tfSponsorSetMask - tfInnerBatchTxn), + sponsor, alice, ~tfSponsorshipSetMask - tfInnerBatchTxn), ter(temINVALID_FLAG)); env(sponsor::set( @@ -974,7 +974,7 @@ public: run() override { testDisabled(); - testInvalidSponsorSet(); + testInvalidSponsorshipSet(); testSingleSigning(); testMultiSigning(); diff --git a/src/test/jtx/impl/sponsor.cpp b/src/test/jtx/impl/sponsor.cpp index f28c643b46..6bfe074c16 100644 --- a/src/test/jtx/impl/sponsor.cpp +++ b/src/test/jtx/impl/sponsor.cpp @@ -39,7 +39,7 @@ set(jtx::Account const& account, std::optional feeAmount) { Json::Value jv; - jv[jss::TransactionType] = jss::SponsorSet; + jv[jss::TransactionType] = jss::SponsorshipSet; jv[jss::Account] = account.human(); jv[sfSponsee.jsonName] = sponsee.human(); jv[sfFlags.jsonName] = flags; @@ -54,7 +54,7 @@ Json::Value del(jtx::Account const& account, jtx::Account const& sponsee) { Json::Value jv; - jv[jss::TransactionType] = jss::SponsorSet; + jv[jss::TransactionType] = jss::SponsorshipSet; jv[jss::Account] = account.human(); jv[sfSponsee.jsonName] = sponsee.human(); jv[sfFlags.jsonName] = tfDeleteObject; @@ -65,7 +65,7 @@ Json::Value transfer(jtx::Account const& account, std::optional const& index) { Json::Value jv; - jv[jss::TransactionType] = jss::SponsorTransfer; + jv[jss::TransactionType] = jss::SponsorshipTransfer; jv[jss::Account] = account.human(); if (index) jv[sfObjectID.jsonName] = to_string(*index); diff --git a/src/xrpld/app/tx/detail/DeleteAccount.cpp b/src/xrpld/app/tx/detail/DeleteAccount.cpp index d7398e3fae..33f7a108f9 100644 --- a/src/xrpld/app/tx/detail/DeleteAccount.cpp +++ b/src/xrpld/app/tx/detail/DeleteAccount.cpp @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include @@ -204,7 +204,7 @@ removeSponsorshipFromLedger( std::shared_ptr const& sleDel, beast::Journal j) { - return SponsorSet::deleteSponsorship(view, sleDel, j); + return SponsorshipSet::deleteSponsorship(view, sleDel, j); } // Return nullptr if the LedgerEntryType represents an obligation that can't diff --git a/src/xrpld/app/tx/detail/SponsorSet.cpp b/src/xrpld/app/tx/detail/SponsorshipSet.cpp similarity index 89% rename from src/xrpld/app/tx/detail/SponsorSet.cpp rename to src/xrpld/app/tx/detail/SponsorshipSet.cpp index 4281dae7c9..923c421a34 100644 --- a/src/xrpld/app/tx/detail/SponsorSet.cpp +++ b/src/xrpld/app/tx/detail/SponsorshipSet.cpp @@ -17,7 +17,7 @@ */ //============================================================================== -#include +#include #include #include @@ -25,7 +25,7 @@ namespace ripple { NotTEC -SponsorSet::preflight(PreflightContext const& ctx) +SponsorshipSet::preflight(PreflightContext const& ctx) { if (!ctx.rules.enabled(featureSponsor)) return temDISABLED; @@ -35,7 +35,7 @@ SponsorSet::preflight(PreflightContext const& ctx) // check Flags { - if (ctx.tx.getFlags() & tfSponsorSetMask) + if (ctx.tx.getFlags() & tfSponsorshipSetMask) return temINVALID_FLAG; if (ctx.tx.isFlag(tfSponsorshipSetRequireSignForFee) && @@ -116,7 +116,7 @@ SponsorSet::preflight(PreflightContext const& ctx) } TER -SponsorSet::preclaim(PreclaimContext const& ctx) +SponsorshipSet::preclaim(PreclaimContext const& ctx) { auto const sponsor = ctx.tx.isFieldPresent(sfSponsorAccount) ? ctx.tx.getAccountID(sfSponsorAccount) @@ -142,7 +142,7 @@ SponsorSet::preclaim(PreclaimContext const& ctx) } TER -SponsorSet::doApply() +SponsorshipSet::doApply() { auto const sponseeAcc = ctx_.tx[sfSponsee]; auto const keylet = keylet::sponsor(account_, sponseeAcc); @@ -270,4 +270,34 @@ SponsorSet::doApply() return tesSUCCESS; } +TER +SponsorshipSet::deleteSponsorship( + ApplyView& view, + std::shared_ptr const& sle, + beast::Journal j) +{ + auto const sponsor = sle->getAccountID(sfSponsorAccount); + auto const sponsee = sle->getAccountID(sfSponsee); + + // adjust balance + auto const sponsorAccSle = view.peek(keylet::account(sponsor)); + if (!sponsorAccSle) + return tecINTERNAL; + + auto const feeAmount = sle->getFieldAmount(sfFeeAmount); + + (*sponsorAccSle)[sfBalance] += feeAmount; + + // delete sponsor node + view.dirRemove( + keylet::ownerDir(sponsor), (*sle)[sfSponsorNode], sle->key(), false); + // delete sponsee node + view.dirRemove( + keylet::ownerDir(sponsee), (*sle)[sfSponseeNode], sle->key(), false); + + view.erase(sle); + + return tesSUCCESS; +} + } // namespace ripple diff --git a/src/xrpld/app/tx/detail/SponsorTransfer.h b/src/xrpld/app/tx/detail/SponsorshipSet.h similarity index 78% rename from src/xrpld/app/tx/detail/SponsorTransfer.h rename to src/xrpld/app/tx/detail/SponsorshipSet.h index 68f596bcd0..ec22cca67e 100644 --- a/src/xrpld/app/tx/detail/SponsorTransfer.h +++ b/src/xrpld/app/tx/detail/SponsorshipSet.h @@ -17,19 +17,19 @@ */ //============================================================================== -#ifndef RIPPLE_TX_SPONSORTRANSFER_H_INCLUDED -#define RIPPLE_TX_SPONSORTRANSFER_H_INCLUDED +#ifndef RIPPLE_TX_SPONSORSHIPSET_H_INCLUDED +#define RIPPLE_TX_SPONSORSHIPSET_H_INCLUDED #include namespace ripple { -class SponsorTransfer : public Transactor +class SponsorshipSet : public Transactor { public: static constexpr ConsequencesFactoryType ConsequencesFactory{Normal}; - explicit SponsorTransfer(ApplyContext& ctx) : Transactor(ctx) + explicit SponsorshipSet(ApplyContext& ctx) : Transactor(ctx) { } @@ -41,6 +41,13 @@ public: TER doApply() override; + + // Interface used by DeleteAccount + static TER + deleteSponsorship( + ApplyView& view, + std::shared_ptr const& sle, + beast::Journal j); }; } // namespace ripple diff --git a/src/xrpld/app/tx/detail/SponsorTransfer.cpp b/src/xrpld/app/tx/detail/SponsorshipTransfer.cpp similarity index 98% rename from src/xrpld/app/tx/detail/SponsorTransfer.cpp rename to src/xrpld/app/tx/detail/SponsorshipTransfer.cpp index 7dc0909a88..9eae02ac82 100644 --- a/src/xrpld/app/tx/detail/SponsorTransfer.cpp +++ b/src/xrpld/app/tx/detail/SponsorshipTransfer.cpp @@ -17,7 +17,7 @@ */ //============================================================================== -#include +#include #include #include @@ -32,7 +32,7 @@ namespace ripple { NotTEC -SponsorTransfer::preflight(PreflightContext const& ctx) +SponsorshipTransfer::preflight(PreflightContext const& ctx) { if (!ctx.rules.enabled(featureSponsor)) return temDISABLED; @@ -108,7 +108,7 @@ getLedgerEntryOwner( } TER -SponsorTransfer::preclaim(PreclaimContext const& ctx) +SponsorshipTransfer::preclaim(PreclaimContext const& ctx) { auto const index = ctx.tx[~sfObjectID]; auto const newSponsor = getTxReserveSponsor(ctx.view, ctx.tx); @@ -194,7 +194,7 @@ SponsorTransfer::preclaim(PreclaimContext const& ctx) } TER -SponsorTransfer::doApply() +SponsorshipTransfer::doApply() { auto const& tx = ctx_.tx; diff --git a/src/xrpld/app/tx/detail/SponsorSet.h b/src/xrpld/app/tx/detail/SponsorshipTransfer.h similarity index 86% rename from src/xrpld/app/tx/detail/SponsorSet.h rename to src/xrpld/app/tx/detail/SponsorshipTransfer.h index f2ed220bb0..452c4b06b2 100644 --- a/src/xrpld/app/tx/detail/SponsorSet.h +++ b/src/xrpld/app/tx/detail/SponsorshipTransfer.h @@ -17,19 +17,19 @@ */ //============================================================================== -#ifndef RIPPLE_TX_SPONSORSET_H_INCLUDED -#define RIPPLE_TX_SPONSORSET_H_INCLUDED +#ifndef RIPPLE_TX_SponsorshipTransfer_H_INCLUDED +#define RIPPLE_TX_SponsorshipTransfer_H_INCLUDED #include namespace ripple { -class SponsorSet : public Transactor +class SponsorshipTransfer : public Transactor { public: static constexpr ConsequencesFactoryType ConsequencesFactory{Normal}; - explicit SponsorSet(ApplyContext& ctx) : Transactor(ctx) + explicit SponsorshipTransfer(ApplyContext& ctx) : Transactor(ctx) { } diff --git a/src/xrpld/app/tx/detail/applySteps.cpp b/src/xrpld/app/tx/detail/applySteps.cpp index 8f25145aa5..cb6371891d 100644 --- a/src/xrpld/app/tx/detail/applySteps.cpp +++ b/src/xrpld/app/tx/detail/applySteps.cpp @@ -62,8 +62,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include