From 7f6a079aa4b28fc6ce0428310c81061dbeea35a1 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 9d5ceea82a8..65dc8351680 100644 --- a/src/ripple/app/paths/impl/BookStep.cpp +++ b/src/ripple/app/paths/impl/BookStep.cpp @@ -275,6 +275,7 @@ class BookPaymentStep : public BookStep> using BookStep>::BookStep; using BookStep>::qualityUpperBound; + using typename BookStep>::OfferType; // Never limit self cross quality on a payment. template