From e5e4925a39e636cc611349ed2a75e59f8989ea77 Mon Sep 17 00:00:00 2001 From: Gregory Tsipenyuk Date: Sat, 4 May 2024 17:36:49 -0400 Subject: [PATCH] Fix offer crossing via single path AMM with transfer fee: Single path AMM offer has to factor in the transfer in rate when calculating the upper bound quality and the quality function because single path AMM's offer quality is not constant. This fix factors in the transfer fee in BookStep::adjustQualityWithFees(). --- src/ripple/app/paths/impl/BookStep.cpp | 57 +++++++- src/test/app/AMM_test.cpp | 194 +++++++++++++++++++++++++ 2 files changed, 245 insertions(+), 6 deletions(-) diff --git a/src/ripple/app/paths/impl/BookStep.cpp b/src/ripple/app/paths/impl/BookStep.cpp index b56b77cba..091ab9f3f 100644 --- a/src/ripple/app/paths/impl/BookStep.cpp +++ b/src/ripple/app/paths/impl/BookStep.cpp @@ -275,6 +275,7 @@ public: using BookStep>::BookStep; using BookStep>::qualityUpperBound; + using typename BookStep>::OfferType; // Never limit self cross quality on a payment. template