diff --git a/src/ripple/app/tx/impl/Escrow.cpp b/src/ripple/app/tx/impl/Escrow.cpp index e149a6627..bf38a9af3 100644 --- a/src/ripple/app/tx/impl/Escrow.cpp +++ b/src/ripple/app/tx/impl/Escrow.cpp @@ -297,7 +297,7 @@ EscrowCreate::doApply() // Obeying the lsfDissalowXRP flag was a bug. Piggyback on // featureDepositAuth to remove the bug. if (!ctx_.view().rules().enabled(featureDepositAuth) && - ((*sled)[sfFlags] & lsfDisallowXRP)) + isXRP(amount) && ((*sled)[sfFlags] & lsfDisallowXRP)) return tecNO_TARGET; } diff --git a/src/ripple/app/tx/impl/PayChan.cpp b/src/ripple/app/tx/impl/PayChan.cpp index e08eb0755..e2412149a 100644 --- a/src/ripple/app/tx/impl/PayChan.cpp +++ b/src/ripple/app/tx/impl/PayChan.cpp @@ -340,7 +340,7 @@ PayChanCreate::preclaim(PreclaimContext const& ctx) // Obeying the lsfDisallowXRP flag was a bug. Piggyback on // featureDepositAuth to remove the bug. if (!ctx.view.rules().enabled(featureDepositAuth) && - ((*sled)[sfFlags] & lsfDisallowXRP)) + isXRP(amount) && ((*sled)[sfFlags] & lsfDisallowXRP)) return tecNO_TARGET; } @@ -741,9 +741,7 @@ PayChanClaim::doApply() // Obeying the lsfDisallowXRP flag was a bug. Piggyback on // featureDepositAuth to remove the bug. bool const depositAuth{ctx_.view().rules().enabled(featureDepositAuth)}; - if (!depositAuth && - // RH TODO: does this condition need to be changed for IOU paychans? - (txAccount == src && (sled->getFlags() & lsfDisallowXRP))) + if (!depositAuth && chanBalance.native() && (txAccount == src && (sled->getFlags() & lsfDisallowXRP))) return tecNO_TARGET; // Check whether the destination account requires deposit authorization.