From 8f50c787c1a5b830c04422cb6ffcca2ffb487527 Mon Sep 17 00:00:00 2001 From: Gregory Tsipenyuk Date: Thu, 19 Feb 2026 20:44:26 +0900 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