Clarify Escrow semantics (RIPD-1571):

When creating an escrow, if the `CancelAfter` time is specified but
the `FinishAfter` is not, the resulting escrow can be immediately
completed using `EscrowFinish`. While this behavior is documented,
it is unintuitive and can be confusing for users.

This commit introduces a new fix amendment (fix1571) which prevents
the creation of new Escrow entries that can be finished immediately
and without any requirements.

Once the amendment is activated, creating a new Escrow will require
specifying the `FinishAfter` time explicitly or requires that a
cryptocondition be specified.
This commit is contained in:
Nikolaos D. Bougalis
2018-03-02 06:23:17 -08:00
parent 2b8893dfca
commit 8d9dffcf84
4 changed files with 685 additions and 440 deletions

View File

@@ -75,7 +75,8 @@ class FeatureCollections
"fix1523",
"fix1528",
"DepositAuth",
"Checks"
"Checks",
"fix1571"
};
std::vector<uint256> features;
@@ -135,7 +136,7 @@ public:
using base::bitset;
using base::operator==;
using base::operator!=;
using base::test;
using base::all;
using base::any;
@@ -357,6 +358,7 @@ extern uint256 const fix1523;
extern uint256 const fix1528;
extern uint256 const featureDepositAuth;
extern uint256 const featureChecks;
extern uint256 const fix1571;
} // ripple