mirror of
https://github.com/XRPLF/rippled.git
synced 2026-08-19 05:10:55 +00:00
refactor: Clean up spf flag usage (#7608)
Co-authored-by: xrplf-ai-reviewer[bot] <266832837+xrplf-ai-reviewer[bot]@users.noreply.github.com>
This commit is contained in:
@@ -12,6 +12,12 @@
|
||||
|
||||
namespace xrpl {
|
||||
|
||||
inline bool
|
||||
isFeeSponsored(STTx const& tx)
|
||||
{
|
||||
return (tx.getFieldU32(sfSponsorFlags) & spfSponsorFee) != 0u;
|
||||
}
|
||||
|
||||
inline bool
|
||||
isReserveSponsored(STTx const& tx)
|
||||
{
|
||||
@@ -125,13 +131,4 @@ removeSponsorFromLedgerEntry(SLE::ref sle, SF_ACCOUNT const& field = sfSponsor)
|
||||
sle->makeFieldAbsent(field);
|
||||
}
|
||||
|
||||
// namespace sponsor
|
||||
// {
|
||||
// // Accessing the ledger to check if provided sponsor is valid.
|
||||
// [[nodiscard]] TER
|
||||
// valid(ReadView const& view, STTx const& tx, beast::Journal j)
|
||||
// {
|
||||
// }
|
||||
// }
|
||||
|
||||
} // namespace xrpl
|
||||
|
||||
@@ -458,6 +458,7 @@ getAsfFlagMap()
|
||||
|
||||
inline constexpr FlagValue spfSponsorFee = 1;
|
||||
inline constexpr FlagValue spfSponsorReserve = 2;
|
||||
inline constexpr FlagValue spfSponsorFlagMask = ~(spfSponsorFee | spfSponsorReserve);
|
||||
|
||||
} // namespace xrpl
|
||||
|
||||
|
||||
@@ -180,13 +180,6 @@ preflight1Sponsor(PreflightContext const& ctx, AccountID const& id)
|
||||
if ((hasSponsor || hasSponsorFlags || hasSponsorSig) && !ctx.rules.enabled(featureSponsor))
|
||||
return temDISABLED;
|
||||
|
||||
if (hasSponsorFlags &&
|
||||
((ctx.tx.getFieldU32(sfSponsorFlags) & ~(spfSponsorFee | spfSponsorReserve)) != 0u))
|
||||
{
|
||||
JLOG(ctx.j.debug()) << "preflight1: invalid sponsor flags";
|
||||
return temINVALID_FLAG;
|
||||
}
|
||||
|
||||
if (!hasSponsor)
|
||||
{
|
||||
if (hasSponsorFlags)
|
||||
@@ -204,7 +197,7 @@ preflight1Sponsor(PreflightContext const& ctx, AccountID const& id)
|
||||
else if (hasSponsorFlags)
|
||||
{
|
||||
auto const sponsorFlags = ctx.tx.getFieldU32(sfSponsorFlags);
|
||||
if (((sponsorFlags & ~(spfSponsorFee | spfSponsorReserve)) != 0u) || sponsorFlags == 0)
|
||||
if (((sponsorFlags & spfSponsorFlagMask) != 0u) || sponsorFlags == 0)
|
||||
{
|
||||
JLOG(ctx.j.debug()) << "preflight1: invalid sponsor flags";
|
||||
return temINVALID_FLAG;
|
||||
@@ -420,14 +413,10 @@ Transactor::checkSponsor(ReadView const& view, STTx const& tx)
|
||||
if (!sponsorshipSle)
|
||||
return terNO_SPONSORSHIP;
|
||||
|
||||
auto const sponsorFlags = tx.getFieldU32(sfSponsorFlags);
|
||||
|
||||
if (((sponsorFlags & spfSponsorFee) != 0u) &&
|
||||
sponsorshipSle->isFlag(lsfSponsorshipRequireSignForFee))
|
||||
if (isFeeSponsored(tx) && sponsorshipSle->isFlag(lsfSponsorshipRequireSignForFee))
|
||||
return terNO_SPONSORSHIP;
|
||||
|
||||
if (((sponsorFlags & spfSponsorReserve) != 0u) &&
|
||||
sponsorshipSle->isFlag(lsfSponsorshipRequireSignForReserve))
|
||||
if (isReserveSponsored(tx) && sponsorshipSle->isFlag(lsfSponsorshipRequireSignForReserve))
|
||||
return terNO_SPONSORSHIP;
|
||||
|
||||
return tesSUCCESS;
|
||||
@@ -1324,7 +1313,7 @@ Transactor::reset(XRPAmount fee)
|
||||
FeePayer
|
||||
Transactor::getFeePayer(ReadView const& view, STTx const& tx)
|
||||
{
|
||||
if (tx.isFieldPresent(sfSponsor) && ((tx.getFieldU32(sfSponsorFlags) & spfSponsorFee) != 0u))
|
||||
if (tx.isFieldPresent(sfSponsor) && isFeeSponsored(tx))
|
||||
{
|
||||
auto const sponsorID = tx.getAccountID(sfSponsor);
|
||||
auto const sponseeID = tx.getAccountID(sfAccount);
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include <xrpl/beast/utility/Zero.h>
|
||||
#include <xrpl/ledger/ApplyView.h>
|
||||
#include <xrpl/ledger/ReadView.h>
|
||||
#include <xrpl/ledger/helpers/SponsorHelpers.h>
|
||||
#include <xrpl/protocol/AccountID.h>
|
||||
#include <xrpl/protocol/Protocol.h>
|
||||
#include <xrpl/protocol/SField.h>
|
||||
@@ -214,8 +215,7 @@ Batch::preflight(PreflightContext const& ctx)
|
||||
|
||||
if (ctx.tx.isFieldPresent(sfSponsorFlags))
|
||||
{
|
||||
auto const sponsorFlags = ctx.tx.getFieldU32(sfSponsorFlags);
|
||||
if ((sponsorFlags & spfSponsorReserve) != 0u)
|
||||
if (isReserveSponsored(ctx.tx))
|
||||
{
|
||||
JLOG(ctx.j.debug()) << "BatchTrace[" << parentBatchId << "]:"
|
||||
<< "spfSponsorReserve is not allowed on outer Batch.";
|
||||
|
||||
Reference in New Issue
Block a user