allow deletable accounts but make importsequence on accountroot a blocker

This commit is contained in:
Richard Holland
2023-09-24 10:16:39 +00:00
parent 517c7a494b
commit 92e5e08025
6 changed files with 7 additions and 12 deletions

View File

@@ -36,9 +36,6 @@ namespace ripple {
NotTEC
DeleteAccount::preflight(PreflightContext const& ctx)
{
if (ctx.rules.enabled(featureXahauGenesis))
return temDISABLED;
if (!ctx.rules.enabled(featureDeletableAccounts))
return temDISABLED;
@@ -204,6 +201,10 @@ DeleteAccount::preclaim(PreclaimContext const& ctx)
if (!sleDst)
return tecNO_DST;
// accounts created via Import are blocked from deletion
if (sleDst->isFieldPresent(sfImportSequence))
return tecHAS_OBLIGATIONS;
if ((*sleDst)[sfFlags] & lsfRequireDestTag && !ctx.tx[~sfDestinationTag])
return tecDST_TAG_NEEDED;

View File

@@ -180,8 +180,6 @@ GenesisMint::doApply()
// Create the account.
std::uint32_t const seqno{
view().rules().enabled(featureDeletableAccounts)
// RH NOTE: this condition is impossible, but left for completeness and consistency with other
// code, and defensively against future changes.
? view().seq()
: 1};

View File

@@ -429,7 +429,7 @@ REGISTER_FIX (fixTakerDryOfferRemoval, Supported::yes, VoteBehavior::De
REGISTER_FIX (fixMasterKeyAsRegularKey, Supported::yes, VoteBehavior::DefaultYes);
REGISTER_FIX (fixCheckThreading, Supported::yes, VoteBehavior::DefaultYes);
REGISTER_FIX (fixPayChanRecipientOwnerDir, Supported::yes, VoteBehavior::DefaultYes);
REGISTER_FEATURE(DeletableAccounts, Supported::yes, VoteBehavior::DefaultYes);
REGISTER_FEATURE(DeletableAccounts, Supported::yes, VoteBehavior::DefaultNo);
// fixQualityUpperBound should be activated before FlowCross
REGISTER_FIX (fixQualityUpperBound, Supported::yes, VoteBehavior::DefaultYes);
REGISTER_FEATURE(RequireFullyCanonicalSig, Supported::yes, VoteBehavior::DefaultYes);

View File

@@ -54,10 +54,6 @@ public:
bool
enabled(uint256 const& feature) const
{
if (feature == featureDeletableAccounts &&
(presets_.count(featureXahauGenesis) > 0 || set_.count(featureXahauGenesis)))
return false;
if (presets_.count(feature) > 0)
return true;
return set_.count(feature) > 0;

View File

@@ -942,7 +942,7 @@ public:
using namespace test::jtx;
auto const sa = supported_amendments();
testWithFeatures(sa - featureXahauGenesis);
testWithFeatures(sa);
}
};

View File

@@ -5206,7 +5206,7 @@ class Offer_manual_test : public Offer_test
run() override
{
using namespace jtx;
FeatureBitset const all{supported_amendments()};
FeatureBitset const all{supported_amendments() - featureXahauGenesis};
FeatureBitset const flowCross{featureFlowCross};
FeatureBitset const f1513{fix1513};
FeatureBitset const immediateOfferKilled{featureImmediateOfferKilled};