mirror of
https://github.com/Xahau/xahaud.git
synced 2025-11-20 10:35:50 +00:00
Remove conditionals for featureEscrow enabled 31Mar2017
This commit is contained in:
@@ -98,9 +98,6 @@ EscrowCreate::calculateMaxSpend(STTx const& tx)
|
|||||||
NotTEC
|
NotTEC
|
||||||
EscrowCreate::preflight (PreflightContext const& ctx)
|
EscrowCreate::preflight (PreflightContext const& ctx)
|
||||||
{
|
{
|
||||||
if (! ctx.rules.enabled(featureEscrow))
|
|
||||||
return temDISABLED;
|
|
||||||
|
|
||||||
if (ctx.rules.enabled(fix1543) && ctx.tx.getFlags() & tfUniversalMask)
|
if (ctx.rules.enabled(fix1543) && ctx.tx.getFlags() & tfUniversalMask)
|
||||||
return temINVALID_FLAG;
|
return temINVALID_FLAG;
|
||||||
|
|
||||||
@@ -300,9 +297,6 @@ checkCondition (Slice f, Slice c)
|
|||||||
NotTEC
|
NotTEC
|
||||||
EscrowFinish::preflight (PreflightContext const& ctx)
|
EscrowFinish::preflight (PreflightContext const& ctx)
|
||||||
{
|
{
|
||||||
if (! ctx.rules.enabled(featureEscrow))
|
|
||||||
return temDISABLED;
|
|
||||||
|
|
||||||
if (ctx.rules.enabled(fix1543) && ctx.tx.getFlags() & tfUniversalMask)
|
if (ctx.rules.enabled(fix1543) && ctx.tx.getFlags() & tfUniversalMask)
|
||||||
return temINVALID_FLAG;
|
return temINVALID_FLAG;
|
||||||
|
|
||||||
@@ -518,9 +512,6 @@ EscrowFinish::doApply()
|
|||||||
NotTEC
|
NotTEC
|
||||||
EscrowCancel::preflight (PreflightContext const& ctx)
|
EscrowCancel::preflight (PreflightContext const& ctx)
|
||||||
{
|
{
|
||||||
if (! ctx.rules.enabled(featureEscrow))
|
|
||||||
return temDISABLED;
|
|
||||||
|
|
||||||
if (ctx.rules.enabled(fix1543) && ctx.tx.getFlags() & tfUniversalMask)
|
if (ctx.rules.enabled(fix1543) && ctx.tx.getFlags() & tfUniversalMask)
|
||||||
return temINVALID_FLAG;
|
return temINVALID_FLAG;
|
||||||
|
|
||||||
|
|||||||
@@ -372,7 +372,7 @@ extern uint256 const featureFlowCross;
|
|||||||
extern uint256 const retiredCryptoConditions;
|
extern uint256 const retiredCryptoConditions;
|
||||||
extern uint256 const retiredTickSize;
|
extern uint256 const retiredTickSize;
|
||||||
extern uint256 const retiredFix1368;
|
extern uint256 const retiredFix1368;
|
||||||
extern uint256 const featureEscrow;
|
extern uint256 const retiredEscrow;
|
||||||
extern uint256 const featureCryptoConditionsSuite;
|
extern uint256 const featureCryptoConditionsSuite;
|
||||||
extern uint256 const fix1373;
|
extern uint256 const fix1373;
|
||||||
extern uint256 const featureEnforceInvariants;
|
extern uint256 const featureEnforceInvariants;
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ uint256 const featureFlowCross = *getRegisteredFeature("FlowCross");
|
|||||||
uint256 const retiredCryptoConditions = *getRegisteredFeature("CryptoConditions");
|
uint256 const retiredCryptoConditions = *getRegisteredFeature("CryptoConditions");
|
||||||
uint256 const retiredTickSize = *getRegisteredFeature("TickSize");
|
uint256 const retiredTickSize = *getRegisteredFeature("TickSize");
|
||||||
uint256 const retiredFix1368 = *getRegisteredFeature("fix1368");
|
uint256 const retiredFix1368 = *getRegisteredFeature("fix1368");
|
||||||
uint256 const featureEscrow = *getRegisteredFeature("Escrow");
|
uint256 const retiredEscrow = *getRegisteredFeature("Escrow");
|
||||||
uint256 const featureCryptoConditionsSuite = *getRegisteredFeature("CryptoConditionsSuite");
|
uint256 const featureCryptoConditionsSuite = *getRegisteredFeature("CryptoConditionsSuite");
|
||||||
uint256 const fix1373 = *getRegisteredFeature("fix1373");
|
uint256 const fix1373 = *getRegisteredFeature("fix1373");
|
||||||
uint256 const featureEnforceInvariants = *getRegisteredFeature("EnforceInvariants");
|
uint256 const featureEnforceInvariants = *getRegisteredFeature("EnforceInvariants");
|
||||||
|
|||||||
@@ -215,36 +215,25 @@ struct Escrow_test : public beast::unit_test::suite
|
|||||||
using namespace jtx;
|
using namespace jtx;
|
||||||
using namespace std::chrono;
|
using namespace std::chrono;
|
||||||
|
|
||||||
{ // Escrow not enabled
|
Env env(*this);
|
||||||
Env env(*this, supported_amendments() - featureEscrow);
|
env.fund(XRP(5000), "alice", "bob");
|
||||||
env.fund(XRP(5000), "alice", "bob");
|
env(escrow("alice", "bob", XRP(1000)), finish_time(env.now() + 1s));
|
||||||
env(escrow("alice", "bob", XRP(1000)),
|
env.close();
|
||||||
finish_time(env.now() + 1s), ter(temDISABLED));
|
|
||||||
env(finish("bob", "alice", 1), ter(temDISABLED));
|
|
||||||
env(cancel("bob", "alice", 1), ter(temDISABLED));
|
|
||||||
}
|
|
||||||
|
|
||||||
{ // Escrow enabled
|
auto const seq1 = env.seq("alice");
|
||||||
Env env(*this);
|
|
||||||
env.fund(XRP(5000), "alice", "bob");
|
|
||||||
env(escrow("alice", "bob", XRP(1000)), finish_time(env.now() + 1s));
|
|
||||||
env.close();
|
|
||||||
|
|
||||||
auto const seq1 = env.seq("alice");
|
env(escrow("alice", "bob", XRP(1000)), condition (cb1),
|
||||||
|
finish_time(env.now() + 1s), fee(1500));
|
||||||
|
env.close();
|
||||||
|
env(finish("bob", "alice", seq1),
|
||||||
|
condition(cb1), fulfillment(fb1), fee(1500));
|
||||||
|
|
||||||
env(escrow("alice", "bob", XRP(1000)), condition (cb1),
|
auto const seq2 = env.seq("alice");
|
||||||
finish_time(env.now() + 1s), fee(1500));
|
|
||||||
env.close();
|
|
||||||
env(finish("bob", "alice", seq1),
|
|
||||||
condition(cb1), fulfillment(fb1), fee(1500));
|
|
||||||
|
|
||||||
auto const seq2 = env.seq("alice");
|
env(escrow("alice", "bob", XRP(1000)), condition(cb2),
|
||||||
|
finish_time(env.now() + 1s), cancel_time(env.now() + 2s), fee(1500));
|
||||||
env(escrow("alice", "bob", XRP(1000)), condition(cb2),
|
env.close();
|
||||||
finish_time(env.now() + 1s), cancel_time(env.now() + 2s), fee(1500));
|
env(cancel("bob", "alice", seq2), fee(1500));
|
||||||
env.close();
|
|
||||||
env(cancel("bob", "alice", seq2), fee(1500));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -748,23 +748,23 @@ public:
|
|||||||
|
|
||||||
{
|
{
|
||||||
// a Env FeatureBitset has *only* those features
|
// a Env FeatureBitset has *only* those features
|
||||||
Env env{*this, FeatureBitset(featureEscrow, featureFlow)};
|
Env env{*this, FeatureBitset(featureMultiSignReserve, featureFlow)};
|
||||||
BEAST_EXPECT(env.app().config().features.size() == 2);
|
BEAST_EXPECT(env.app().config().features.size() == 2);
|
||||||
foreachFeature(supported, [&](uint256 const& f) {
|
foreachFeature(supported, [&](uint256 const& f) {
|
||||||
bool const has = (f == featureEscrow || f == featureFlow);
|
bool const has = (f == featureMultiSignReserve || f == featureFlow);
|
||||||
this->BEAST_EXPECT(has == hasFeature(env, f));
|
this->BEAST_EXPECT(has == hasFeature(env, f));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
auto const noFlowOrEscrow =
|
auto const missingSomeFeatures =
|
||||||
supported_amendments() - featureEscrow - featureFlow;
|
supported_amendments() - featureMultiSignReserve - featureFlow;
|
||||||
{
|
{
|
||||||
// a Env supported_features_except is missing *only* those features
|
// a Env supported_features_except is missing *only* those features
|
||||||
Env env{*this, noFlowOrEscrow};
|
Env env{*this, missingSomeFeatures};
|
||||||
BEAST_EXPECT(
|
BEAST_EXPECT(
|
||||||
env.app().config().features.size() == (supported.count() - 2));
|
env.app().config().features.size() == (supported.count() - 2));
|
||||||
foreachFeature(supported, [&](uint256 const& f) {
|
foreachFeature(supported, [&](uint256 const& f) {
|
||||||
bool hasnot = (f == featureEscrow || f == featureFlow);
|
bool hasnot = (f == featureMultiSignReserve || f == featureFlow);
|
||||||
this->BEAST_EXPECT(hasnot != hasFeature(env, f));
|
this->BEAST_EXPECT(hasnot != hasFeature(env, f));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -776,7 +776,8 @@ public:
|
|||||||
// the two supported ones
|
// the two supported ones
|
||||||
Env env{
|
Env env{
|
||||||
*this,
|
*this,
|
||||||
FeatureBitset(featureEscrow, featureFlow, *neverSupportedFeat)};
|
FeatureBitset(
|
||||||
|
featureMultiSignReserve, featureFlow, *neverSupportedFeat)};
|
||||||
|
|
||||||
// this app will have just 2 supported amendments and
|
// this app will have just 2 supported amendments and
|
||||||
// one additional never supported feature flag
|
// one additional never supported feature flag
|
||||||
@@ -784,7 +785,7 @@ public:
|
|||||||
BEAST_EXPECT(hasFeature(env, *neverSupportedFeat));
|
BEAST_EXPECT(hasFeature(env, *neverSupportedFeat));
|
||||||
|
|
||||||
foreachFeature(supported, [&](uint256 const& f) {
|
foreachFeature(supported, [&](uint256 const& f) {
|
||||||
bool has = (f == featureEscrow || f == featureFlow);
|
bool has = (f == featureMultiSignReserve || f == featureFlow);
|
||||||
this->BEAST_EXPECT(has == hasFeature(env, f));
|
this->BEAST_EXPECT(has == hasFeature(env, f));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -794,7 +795,7 @@ public:
|
|||||||
// and omit a few standard amendments
|
// and omit a few standard amendments
|
||||||
// the unsupported features should be enabled
|
// the unsupported features should be enabled
|
||||||
Env env{*this,
|
Env env{*this,
|
||||||
noFlowOrEscrow | FeatureBitset{*neverSupportedFeat}};
|
missingSomeFeatures | FeatureBitset{*neverSupportedFeat}};
|
||||||
|
|
||||||
// this app will have all supported amendments minus 2 and then the
|
// this app will have all supported amendments minus 2 and then the
|
||||||
// one additional never supported feature flag
|
// one additional never supported feature flag
|
||||||
@@ -803,7 +804,7 @@ public:
|
|||||||
(supported.count() - 2 + 1));
|
(supported.count() - 2 + 1));
|
||||||
BEAST_EXPECT(hasFeature(env, *neverSupportedFeat));
|
BEAST_EXPECT(hasFeature(env, *neverSupportedFeat));
|
||||||
foreachFeature(supported, [&](uint256 const& f) {
|
foreachFeature(supported, [&](uint256 const& f) {
|
||||||
bool hasnot = (f == featureEscrow || f == featureFlow);
|
bool hasnot = (f == featureMultiSignReserve || f == featureFlow);
|
||||||
this->BEAST_EXPECT(hasnot != hasFeature(env, f));
|
this->BEAST_EXPECT(hasnot != hasFeature(env, f));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user