mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-20 11:05:54 +00:00
refactor: Retire ImmediateOfferKilled amendment (#5973)
Amendments activated for more than 2 years can be retired. This change retires the ImmediateOfferKilled amendment.
This commit is contained in:
@@ -82,7 +82,6 @@ XRPL_FIX (NonFungibleTokensV1_2, Supported::yes, VoteBehavior::DefaultNo
|
|||||||
XRPL_FIX (UniversalNumber, Supported::yes, VoteBehavior::DefaultNo)
|
XRPL_FIX (UniversalNumber, Supported::yes, VoteBehavior::DefaultNo)
|
||||||
XRPL_FEATURE(XRPFees, Supported::yes, VoteBehavior::DefaultNo)
|
XRPL_FEATURE(XRPFees, Supported::yes, VoteBehavior::DefaultNo)
|
||||||
XRPL_FEATURE(DisallowIncoming, Supported::yes, VoteBehavior::DefaultNo)
|
XRPL_FEATURE(DisallowIncoming, Supported::yes, VoteBehavior::DefaultNo)
|
||||||
XRPL_FEATURE(ImmediateOfferKilled, Supported::yes, VoteBehavior::DefaultNo)
|
|
||||||
XRPL_FIX (RemoveNFTokenAutoTrustLine, Supported::yes, VoteBehavior::DefaultYes)
|
XRPL_FIX (RemoveNFTokenAutoTrustLine, Supported::yes, VoteBehavior::DefaultYes)
|
||||||
XRPL_FIX (TrustLinesToSelf, Supported::yes, VoteBehavior::DefaultNo)
|
XRPL_FIX (TrustLinesToSelf, Supported::yes, VoteBehavior::DefaultNo)
|
||||||
XRPL_FEATURE(NonFungibleTokensV1_1, Supported::yes, VoteBehavior::DefaultNo)
|
XRPL_FEATURE(NonFungibleTokensV1_1, Supported::yes, VoteBehavior::DefaultNo)
|
||||||
@@ -149,6 +148,7 @@ XRPL_RETIRE(Escrow)
|
|||||||
XRPL_RETIRE(EnforceInvariants)
|
XRPL_RETIRE(EnforceInvariants)
|
||||||
XRPL_RETIRE(FeeEscalation)
|
XRPL_RETIRE(FeeEscalation)
|
||||||
XRPL_RETIRE(FlowCross)
|
XRPL_RETIRE(FlowCross)
|
||||||
|
XRPL_RETIRE(ImmediateOfferKilled)
|
||||||
XRPL_RETIRE(MultiSign)
|
XRPL_RETIRE(MultiSign)
|
||||||
XRPL_RETIRE(PayChan)
|
XRPL_RETIRE(PayChan)
|
||||||
XRPL_RETIRE(SortedDirectories)
|
XRPL_RETIRE(SortedDirectories)
|
||||||
|
|||||||
@@ -855,9 +855,7 @@ public:
|
|||||||
|
|
||||||
// No cross:
|
// No cross:
|
||||||
{
|
{
|
||||||
TER const expectedCode = features[featureImmediateOfferKilled]
|
TER const expectedCode = tecKILLED;
|
||||||
? static_cast<TER>(tecKILLED)
|
|
||||||
: static_cast<TER>(tesSUCCESS);
|
|
||||||
env(offer(alice, XRP(1000), USD(1000)),
|
env(offer(alice, XRP(1000), USD(1000)),
|
||||||
txflags(tfImmediateOrCancel),
|
txflags(tfImmediateOrCancel),
|
||||||
ter(expectedCode));
|
ter(expectedCode));
|
||||||
@@ -5289,34 +5287,12 @@ public:
|
|||||||
testFillOrKill(features);
|
testFillOrKill(features);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
FeatureBitset const allFeatures{jtx::testable_amendments()};
|
||||||
run(std::uint32_t instance, bool last = false)
|
|
||||||
{
|
|
||||||
using namespace jtx;
|
|
||||||
static FeatureBitset const all{testable_amendments()};
|
|
||||||
static FeatureBitset const immediateOfferKilled{
|
|
||||||
featureImmediateOfferKilled};
|
|
||||||
FeatureBitset const fillOrKill{fixFillOrKill};
|
|
||||||
FeatureBitset const permDEX{featurePermissionedDEX};
|
|
||||||
|
|
||||||
static std::array<FeatureBitset, 5> const feats{
|
|
||||||
all - immediateOfferKilled - permDEX,
|
|
||||||
all - immediateOfferKilled - fillOrKill - permDEX,
|
|
||||||
all - fillOrKill - permDEX,
|
|
||||||
all - permDEX,
|
|
||||||
all};
|
|
||||||
|
|
||||||
if (BEAST_EXPECT(instance < feats.size()))
|
|
||||||
{
|
|
||||||
testAll(feats[instance]);
|
|
||||||
}
|
|
||||||
BEAST_EXPECT(!last || instance == feats.size() - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
run() override
|
run() override
|
||||||
{
|
{
|
||||||
run(0);
|
testAll(allFeatures - featurePermissionedDEX);
|
||||||
testFalseAssert();
|
testFalseAssert();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -5326,25 +5302,7 @@ class OfferWOSmallQOffers_test : public OfferBaseUtil_test
|
|||||||
void
|
void
|
||||||
run() override
|
run() override
|
||||||
{
|
{
|
||||||
OfferBaseUtil_test::run(1);
|
testAll(allFeatures - fixFillOrKill - featurePermissionedDEX);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class OfferWOFillOrKill_test : public OfferBaseUtil_test
|
|
||||||
{
|
|
||||||
void
|
|
||||||
run() override
|
|
||||||
{
|
|
||||||
OfferBaseUtil_test::run(2);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class OfferWOPermDEX_test : public OfferBaseUtil_test
|
|
||||||
{
|
|
||||||
void
|
|
||||||
run() override
|
|
||||||
{
|
|
||||||
OfferBaseUtil_test::run(3);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -5353,7 +5311,7 @@ class OfferAllFeatures_test : public OfferBaseUtil_test
|
|||||||
void
|
void
|
||||||
run() override
|
run() override
|
||||||
{
|
{
|
||||||
OfferBaseUtil_test::run(4, true);
|
testAll(allFeatures);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -5364,12 +5322,9 @@ class Offer_manual_test : public OfferBaseUtil_test
|
|||||||
{
|
{
|
||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
FeatureBitset const all{testable_amendments()};
|
FeatureBitset const all{testable_amendments()};
|
||||||
FeatureBitset const immediateOfferKilled{featureImmediateOfferKilled};
|
|
||||||
FeatureBitset const fillOrKill{fixFillOrKill};
|
FeatureBitset const fillOrKill{fixFillOrKill};
|
||||||
FeatureBitset const permDEX{featurePermissionedDEX};
|
FeatureBitset const permDEX{featurePermissionedDEX};
|
||||||
|
|
||||||
testAll(all - immediateOfferKilled - permDEX);
|
|
||||||
testAll(all - immediateOfferKilled - fillOrKill - permDEX);
|
|
||||||
testAll(all - fillOrKill - permDEX);
|
testAll(all - fillOrKill - permDEX);
|
||||||
testAll(all - permDEX);
|
testAll(all - permDEX);
|
||||||
testAll(all);
|
testAll(all);
|
||||||
@@ -5378,8 +5333,6 @@ class Offer_manual_test : public OfferBaseUtil_test
|
|||||||
|
|
||||||
BEAST_DEFINE_TESTSUITE_PRIO(OfferBaseUtil, app, ripple, 2);
|
BEAST_DEFINE_TESTSUITE_PRIO(OfferBaseUtil, app, ripple, 2);
|
||||||
BEAST_DEFINE_TESTSUITE_PRIO(OfferWOSmallQOffers, app, ripple, 2);
|
BEAST_DEFINE_TESTSUITE_PRIO(OfferWOSmallQOffers, app, ripple, 2);
|
||||||
BEAST_DEFINE_TESTSUITE_PRIO(OfferWOFillOrKill, app, ripple, 2);
|
|
||||||
BEAST_DEFINE_TESTSUITE_PRIO(OfferWOPermDEX, app, ripple, 2);
|
|
||||||
BEAST_DEFINE_TESTSUITE_PRIO(OfferAllFeatures, app, ripple, 2);
|
BEAST_DEFINE_TESTSUITE_PRIO(OfferAllFeatures, app, ripple, 2);
|
||||||
BEAST_DEFINE_TESTSUITE_MANUAL_PRIO(Offer_manual, app, ripple, 20);
|
BEAST_DEFINE_TESTSUITE_MANUAL_PRIO(Offer_manual, app, ripple, 20);
|
||||||
|
|
||||||
|
|||||||
@@ -789,9 +789,8 @@ CreateOffer::applyGuts(Sandbox& sb, Sandbox& sbCancel)
|
|||||||
if (bImmediateOrCancel)
|
if (bImmediateOrCancel)
|
||||||
{
|
{
|
||||||
JLOG(j_.trace()) << "Immediate or cancel: offer canceled";
|
JLOG(j_.trace()) << "Immediate or cancel: offer canceled";
|
||||||
if (!crossed && sb.rules().enabled(featureImmediateOfferKilled))
|
if (!crossed)
|
||||||
// If the ImmediateOfferKilled amendment is enabled, any
|
// Any ImmediateOrCancel offer that transfers absolutely no funds
|
||||||
// ImmediateOrCancel offer that transfers absolutely no funds
|
|
||||||
// returns tecKILLED rather than tesSUCCESS. Motivation for the
|
// returns tecKILLED rather than tesSUCCESS. Motivation for the
|
||||||
// change is here: https://github.com/ripple/rippled/issues/4115
|
// change is here: https://github.com/ripple/rippled/issues/4115
|
||||||
return {tecKILLED, false};
|
return {tecKILLED, false};
|
||||||
|
|||||||
Reference in New Issue
Block a user