From 9ff65d0da41ab05d7043568515a95aa4b95440d9 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Wed, 23 Oct 2013 17:24:34 -0700 Subject: [PATCH] Fix setting the no ripple flag when a trust line is created. --- src/ripple_app/ledger/LedgerEntrySet.cpp | 6 ++++++ src/ripple_app/ledger/LedgerEntrySet.h | 1 + src/ripple_app/tx/TrustSetTransactor.cpp | 1 + 3 files changed, 8 insertions(+) diff --git a/src/ripple_app/ledger/LedgerEntrySet.cpp b/src/ripple_app/ledger/LedgerEntrySet.cpp index 0912ae9a40..c05c6eb836 100644 --- a/src/ripple_app/ledger/LedgerEntrySet.cpp +++ b/src/ripple_app/ledger/LedgerEntrySet.cpp @@ -1347,6 +1347,7 @@ TER LedgerEntrySet::trustCreate ( uint256 const& uIndex, // --> ripple state entry SLE::ref sleAccount, // --> the account being set. const bool bAuth, // --> authorize account. + const bool bNoRipple, // --> others cannot ripple through const STAmount& saBalance, // --> balance of account being set. Issuer should be ACCOUNT_ONE const STAmount& saLimit, // --> limit for account being set. Issuer should be the account being set. const uint32 uQualityIn, @@ -1398,6 +1399,10 @@ TER LedgerEntrySet::trustCreate ( { uFlags |= (!bSetHigh ? lsfLowAuth : lsfHighAuth); } + if (bNoRipple) + { + uFlags |= (!bSetHigh ? lsfLowNoRipple : lsfHighNoRipple); + } sleRippleState->setFieldU32 (sfFlags, uFlags); @@ -1475,6 +1480,7 @@ TER LedgerEntrySet::rippleCredit (const uint160& uSenderID, const uint160& uRece uIndex, entryCache (ltACCOUNT_ROOT, Ledger::getAccountRootIndex (uReceiverID)), false, + false, saBalance, saReceiverLimit); } diff --git a/src/ripple_app/ledger/LedgerEntrySet.h b/src/ripple_app/ledger/LedgerEntrySet.h index 96b9607d6b..7a24a89a43 100644 --- a/src/ripple_app/ledger/LedgerEntrySet.h +++ b/src/ripple_app/ledger/LedgerEntrySet.h @@ -212,6 +212,7 @@ public: uint256 const & uIndex, SLE::ref sleAccount, const bool bAuth, + const bool bNoRipple, const STAmount & saSrcBalance, const STAmount & saSrcLimit, const uint32 uSrcQualityIn = 0, diff --git a/src/ripple_app/tx/TrustSetTransactor.cpp b/src/ripple_app/tx/TrustSetTransactor.cpp index f64284fab4..b818989c6f 100644 --- a/src/ripple_app/tx/TrustSetTransactor.cpp +++ b/src/ripple_app/tx/TrustSetTransactor.cpp @@ -349,6 +349,7 @@ TER TrustSetTransactor::doApply () Ledger::getRippleStateIndex (mTxnAccountID, uDstAccountID, uCurrencyID), mTxnAccount, bSetAuth, + bSetNoRipple && !bClearNoRipple, saBalance, saLimitAllow, // Limit for who is being charged. uQualityIn,