Check XRP endpoints for circular paths (RIPD-1781):

The payment engine restricts payment paths so two steps do not input the
same Currency/Issuer or output the same Currency/Issuer. This check was
skipped when the path started or ended with XRP. An example of a path
that was incorrectly accepted was: XRP -> //USD -> //XRP -> EUR

This patch enables the path loop check for paths that start or end with
XRP.
This commit is contained in:
seelabs
2020-01-06 11:55:09 -08:00
committed by manojsdoshi
parent 905a97e0aa
commit d097819c52
5 changed files with 114 additions and 2 deletions

View File

@@ -111,6 +111,7 @@ class FeatureCollections
// fixQualityUpperBound should be activated before FlowCross
"fixQualityUpperBound",
"RequireFullyCanonicalSig",
"fix1781", // XRPEndpointSteps should be included in the circular payment check
};
std::vector<uint256> features;
@@ -399,6 +400,7 @@ extern uint256 const fixPayChanRecipientOwnerDir;
extern uint256 const featureDeletableAccounts;
extern uint256 const fixQualityUpperBound;
extern uint256 const featureRequireFullyCanonicalSig;
extern uint256 const fix1781;
} // ripple