Add fixTakerDryOfferRemoval amendment

This commit is contained in:
1535239824@qq.com
2018-09-26 17:17:43 +00:00
committed by Mike Ellery
parent d5c0e1216d
commit 7b48dc36f5
4 changed files with 128 additions and 27 deletions

View File

@@ -446,15 +446,32 @@ CreateOffer::bridged_cross (
JLOG (j_.debug()) << "Bridge Result: " << transToken (cross_result);
if (dry_offer (view, offers_leg1.tip ()))
if (view.rules().enabled (fixTakerDryOfferRemoval))
{
leg1_consumed = true;
have_bridge = (have_bridge && offers_leg1.step ());
// have_bridge can be true the next time 'round only if
// neither of the OfferStreams are dry.
leg1_consumed = dry_offer (view, offers_leg1.tip());
if (leg1_consumed)
have_bridge &= offers_leg1.step();
leg2_consumed = dry_offer (view, offers_leg2.tip());
if (leg2_consumed)
have_bridge &= offers_leg2.step();
}
if (dry_offer (view, offers_leg2.tip ()))
else
{
leg2_consumed = true;
have_bridge = (have_bridge && offers_leg2.step ());
// This old behavior may leave an empty offer in the book for
// the second leg.
if (dry_offer (view, offers_leg1.tip ()))
{
leg1_consumed = true;
have_bridge = (have_bridge && offers_leg1.step ());
}
if (dry_offer (view, offers_leg2.tip ()))
{
leg2_consumed = true;
have_bridge = (have_bridge && offers_leg2.step ());
}
}
}

View File

@@ -82,7 +82,8 @@ class FeatureCollections
"DepositPreauth",
"fix1515",
"fix1578",
"MultiSignReserve"
"MultiSignReserve",
"fixTakerDryOfferRemoval"
};
std::vector<uint256> features;
@@ -371,6 +372,7 @@ extern uint256 const featureDepositPreauth;
extern uint256 const fix1515;
extern uint256 const fix1578;
extern uint256 const featureMultiSignReserve;
extern uint256 const fixTakerDryOfferRemoval;
} // ripple

View File

@@ -115,7 +115,8 @@ detail::supportedAmendments ()
// Use liquidity from strands that consume max offers, but mark as dry
{ "5D08145F0A4983F23AFFFF514E83FAD355C5ABFBB6CAB76FB5BC8519FF5F33BE fix1515" },
{ "FBD513F1B893AC765B78F250E6FFA6A11B573209D1842ADC787C850696741288 fix1578" },
{ "586480873651E106F1D6339B0C4A8945BA705A777F3F4524626FF1FC07EFE41D MultiSignReserve" }
{ "586480873651E106F1D6339B0C4A8945BA705A777F3F4524626FF1FC07EFE41D MultiSignReserve" },
{ "2CD5286D8D687E98B41102BDD797198E81EA41DF7BD104E6561FEB104EFF2561 fixTakerDryOfferRemoval"}
};
return supported;
}
@@ -172,5 +173,6 @@ uint256 const featureDepositPreauth = *getRegisteredFeature("DepositPreauth");
uint256 const fix1515 = *getRegisteredFeature("fix1515");
uint256 const fix1578 = *getRegisteredFeature("fix1578");
uint256 const featureMultiSignReserve = *getRegisteredFeature("MultiSignReserve");
uint256 const fixTakerDryOfferRemoval = *getRegisteredFeature("fixTakerDryOfferRemoval");
} // ripple