From e9394ca85a7c18f22c54736c36ff1ab378dc04bc Mon Sep 17 00:00:00 2001 From: Nik Bougalis Date: Tue, 17 Mar 2015 19:28:37 -0700 Subject: [PATCH] Implement "Default Ripple" logic in active direction: When a balance change invokes trustCreate, we need to set the no ripple flag if the "active" account's asfRippleDefault flag is cleared. --- src/ripple/app/ledger/LedgerEntrySet.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ripple/app/ledger/LedgerEntrySet.cpp b/src/ripple/app/ledger/LedgerEntrySet.cpp index cb57895e9..73bad24b1 100644 --- a/src/ripple/app/ledger/LedgerEntrySet.cpp +++ b/src/ripple/app/ledger/LedgerEntrySet.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -1446,14 +1447,22 @@ TER LedgerEntrySet::rippleCredit ( " -> " << to_string (uReceiverID) << " : " << saAmount.getFullText (); + SLE::pointer sleAccount = entryCache (ltACCOUNT_ROOT, + getAccountRootIndex (uReceiverID)); + + bool noRipple = (sleAccount->getFlags() & lsfDefaultRipple) == 0; + + if (ripple::legacy::emulate027 (mLedger)) + noRipple = false; + terResult = trustCreate ( bSenderHigh, uSenderID, uReceiverID, uIndex, - entryCache (ltACCOUNT_ROOT, getAccountRootIndex (uReceiverID)), - false, + sleAccount, false, + noRipple, false, saBalance, saReceiverLimit);