mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-02 16:35:49 +00:00
Handle strand creation for erroneous self-payment
This commit is contained in:
@@ -147,7 +147,7 @@ RippleCalc::Output RippleCalc::rippleCalculate (
|
||||
}
|
||||
catch (std::exception& e)
|
||||
{
|
||||
JLOG (j.trace()) << "Exception from flow" << e.what ();
|
||||
JLOG (j.error()) << "Exception from flow: " << e.what ();
|
||||
if (!useFlowV1Output)
|
||||
Rethrow();
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ toStep (
|
||||
if (e1->isOffer() && e2->isAccount())
|
||||
{
|
||||
// should already be taken care of
|
||||
JLOG (j.warn())
|
||||
JLOG (j.error())
|
||||
<< "Found offer/account payment step. Aborting payment strand.";
|
||||
assert (0);
|
||||
if (ctx.view.rules().enabled(fix1373))
|
||||
@@ -498,6 +498,9 @@ toStrandV2 (
|
||||
}
|
||||
}
|
||||
|
||||
if (normPath.size() < 2)
|
||||
return {temBAD_PATH, Strand{}};
|
||||
|
||||
auto const strandSrc = normPath.front().getAccountID ();
|
||||
auto const strandDst = normPath.back().getAccountID ();
|
||||
bool const isDefaultPath = path.empty();
|
||||
|
||||
@@ -1235,7 +1235,23 @@ struct Flow_test : public beast::unit_test::suite
|
||||
sendmax (drops(20000000000)), txflags (tfPartialPayment));
|
||||
}
|
||||
|
||||
void
|
||||
testEmptyStrand(std::initializer_list<uint256> fs)
|
||||
{
|
||||
testcase("Empty Strand");
|
||||
using namespace jtx;
|
||||
|
||||
auto const alice = Account("alice");
|
||||
|
||||
Env env(*this, features(fs));
|
||||
|
||||
env.fund(XRP(10000), alice);
|
||||
|
||||
env(pay(alice, alice,
|
||||
alice["USD"](100)),
|
||||
path(~alice["USD"]),
|
||||
ter(temBAD_PATH));
|
||||
}
|
||||
|
||||
void run() override
|
||||
{
|
||||
@@ -1269,6 +1285,7 @@ struct Flow_test : public beast::unit_test::suite
|
||||
testWithFeats(featureFlow);
|
||||
testWithFeats(featureFlow, fix1373);
|
||||
testWithFeats(featureFlow, fix1373, featureFlowCross);
|
||||
testEmptyStrand({featureFlow, fix1373, featureFlowCross});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user