OfferCreateTransactor cleanups:

- Use std containers instead of their boost counterparts
- Reduce transactor console verbosity
- Remove unneeded parameter shadowing member variable
- Remove BOOST_FOREACH
- Add comments
- Small cleanups
This commit is contained in:
Nik Bougalis
2014-03-19 11:03:11 -07:00
committed by Vinnie Falco
parent 436061be22
commit 015d91b50d
10 changed files with 549 additions and 332 deletions

View File

@@ -39,7 +39,7 @@ TER AccountSetTransactor::doApply ()
if (uTxFlags & tfAccountSetMask)
{
m_journal.info << "Malformed transaction: Invalid flags set.";
m_journal.trace << "Malformed transaction: Invalid flags set.";
return temINVALID_FLAG;
}
@@ -49,7 +49,7 @@ TER AccountSetTransactor::doApply ()
if (bSetRequireAuth && bClearRequireAuth)
{
m_journal.info << "Malformed transaction: Contradictory flags set.";
m_journal.trace << "Malformed transaction: Contradictory flags set.";
return temINVALID_FLAG;
}
@@ -57,18 +57,18 @@ TER AccountSetTransactor::doApply ()
{
if (!mEngine->getNodes ().dirIsEmpty (Ledger::getOwnerDirIndex (mTxnAccountID)))
{
m_journal.info << "Retry: Owner directory not empty.";
m_journal.trace << "Retry: Owner directory not empty.";
return isSetBit(mParams, tapRETRY) ? terOWNERS : tecOWNERS;
}
m_journal.info << "Set RequireAuth.";
m_journal.trace << "Set RequireAuth.";
uFlagsOut |= lsfRequireAuth;
}
if (bClearRequireAuth && isSetBit (uFlagsIn, lsfRequireAuth))
{
m_journal.info << "Clear RequireAuth.";
m_journal.trace << "Clear RequireAuth.";
uFlagsOut &= ~lsfRequireAuth;
}
@@ -78,19 +78,19 @@ TER AccountSetTransactor::doApply ()
if (bSetRequireDest && bClearRequireDest)
{
m_journal.info << "Malformed transaction: Contradictory flags set.";
m_journal.trace << "Malformed transaction: Contradictory flags set.";
return temINVALID_FLAG;
}
if (bSetRequireDest && !isSetBit (uFlagsIn, lsfRequireDestTag))
{
m_journal.info << "Set lsfRequireDestTag.";
m_journal.trace << "Set lsfRequireDestTag.";
uFlagsOut |= lsfRequireDestTag;
}
if (bClearRequireDest && isSetBit (uFlagsIn, lsfRequireDestTag))
{
m_journal.info << "Clear lsfRequireDestTag.";
m_journal.trace << "Clear lsfRequireDestTag.";
uFlagsOut &= ~lsfRequireDestTag;
}
@@ -100,19 +100,19 @@ TER AccountSetTransactor::doApply ()
if (bSetDisallowXRP && bClearDisallowXRP)
{
m_journal.info << "Malformed transaction: Contradictory flags set.";
m_journal.trace << "Malformed transaction: Contradictory flags set.";
return temINVALID_FLAG;
}
if (bSetDisallowXRP && !isSetBit (uFlagsIn, lsfDisallowXRP))
{
m_journal.info << "Set lsfDisallowXRP.";
m_journal.trace << "Set lsfDisallowXRP.";
uFlagsOut |= lsfDisallowXRP;
}
if (bClearDisallowXRP && isSetBit (uFlagsIn, lsfDisallowXRP))
{
m_journal.info << "Clear lsfDisallowXRP.";
m_journal.trace << "Clear lsfDisallowXRP.";
uFlagsOut &= ~lsfDisallowXRP;
}
@@ -122,7 +122,7 @@ TER AccountSetTransactor::doApply ()
if ((uSetFlag == asfDisableMaster) && (uClearFlag == asfDisableMaster))
{
m_journal.info << "Malformed transaction: Contradictory flags set.";
m_journal.trace << "Malformed transaction: Contradictory flags set.";
return temINVALID_FLAG;
}
@@ -131,13 +131,13 @@ TER AccountSetTransactor::doApply ()
if (!mTxnAccount->isFieldPresent (sfRegularKey))
return tecNO_REGULAR_KEY;
m_journal.info << "Set lsfDisableMaster.";
m_journal.trace << "Set lsfDisableMaster.";
uFlagsOut |= lsfDisableMaster;
}
if ((uClearFlag == asfDisableMaster) && isSetBit (uFlagsIn, lsfDisableMaster))
{
m_journal.info << "Clear lsfDisableMaster.";
m_journal.trace << "Clear lsfDisableMaster.";
uFlagsOut &= ~lsfDisableMaster;
}
@@ -147,13 +147,13 @@ TER AccountSetTransactor::doApply ()
if ((uSetFlag == asfAccountTxnID) && (uClearFlag != asfAccountTxnID) && !mTxnAccount->isFieldPresent (sfAccountTxnID))
{
m_journal.info << "Set AccountTxnID";
m_journal.trace << "Set AccountTxnID";
mTxnAccount->makeFieldPresent (sfAccountTxnID);
}
if ((uClearFlag == asfAccountTxnID) && (uSetFlag != asfAccountTxnID) && mTxnAccount->isFieldPresent (sfAccountTxnID))
{
m_journal.info << "Clear AccountTxnID";
m_journal.trace << "Clear AccountTxnID";
mTxnAccount->makeFieldAbsent (sfAccountTxnID);
}
@@ -167,12 +167,12 @@ TER AccountSetTransactor::doApply ()
if (!uHash)
{
m_journal.info << "unset email hash";
m_journal.trace << "unset email hash";
mTxnAccount->makeFieldAbsent (sfEmailHash);
}
else
{
m_journal.info << "set email hash";
m_journal.trace << "set email hash";
mTxnAccount->setFieldH128 (sfEmailHash, uHash);
}
}
@@ -187,12 +187,12 @@ TER AccountSetTransactor::doApply ()
if (!uHash)
{
m_journal.info << "unset wallet locator";
m_journal.trace << "unset wallet locator";
mTxnAccount->makeFieldAbsent (sfEmailHash);
}
else
{
m_journal.info << "set wallet locator";
m_journal.trace << "set wallet locator";
mTxnAccount->setFieldH256 (sfWalletLocator, uHash);
}
}
@@ -213,7 +213,7 @@ TER AccountSetTransactor::doApply ()
}
if (vucPublic.size () > PUBLIC_BYTES_MAX)
{
m_journal.info << "message key too long";
m_journal.trace << "message key too long";
return telBAD_PUBLIC_KEY;
}
@@ -235,19 +235,19 @@ TER AccountSetTransactor::doApply ()
if (vucDomain.empty ())
{
m_journal.info << "unset domain";
m_journal.trace << "unset domain";
mTxnAccount->makeFieldAbsent (sfDomain);
}
else if (vucDomain.size () > DOMAIN_BYTES_MAX)
{
m_journal.info << "domain too long";
m_journal.trace << "domain too long";
return telBAD_DOMAIN;
}
else
{
m_journal.info << "set domain";
m_journal.trace << "set domain";
mTxnAccount->setFieldVL (sfDomain, vucDomain);
}
@@ -263,17 +263,17 @@ TER AccountSetTransactor::doApply ()
if (!uRate || uRate == QUALITY_ONE)
{
m_journal.info << "unset transfer rate";
m_journal.trace << "unset transfer rate";
mTxnAccount->makeFieldAbsent (sfTransferRate);
}
else if (uRate > QUALITY_ONE)
{
m_journal.info << "set transfer rate";
m_journal.trace << "set transfer rate";
mTxnAccount->setFieldU32 (sfTransferRate, uRate);
}
else
{
m_journal.info << "bad transfer rate";
m_journal.trace << "bad transfer rate";
return temBAD_TRANSFER_RATE;
}
}

View File

@@ -127,7 +127,7 @@ TER ChangeTransactor::applyFee ()
feeObject = mEngine->entryCreate (
ltFEE_SETTINGS, Ledger::getLedgerFeeIndex ());
m_journal.info <<
m_journal.trace <<
"Previous fee object: " << feeObject->getJson (0);
feeObject->setFieldU64 (
@@ -141,7 +141,7 @@ TER ChangeTransactor::applyFee ()
mEngine->entryModify (feeObject);
m_journal.info <<
m_journal.trace <<
"New fee object: " << feeObject->getJson (0);
m_journal.warning << "Fees have been changed";
return tesSUCCESS;

View File

@@ -33,14 +33,14 @@ TER OfferCancelTransactor::doApply ()
if (uTxFlags & tfUniversalMask)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Invalid flags set.";
return temINVALID_FLAG;
}
if (!uOfferSequence || uAccountSequenceNext - 1 <= uOfferSequence)
{
m_journal.info <<
m_journal.trace <<
"uAccountSequenceNext=" << uAccountSequenceNext <<
" uOfferSequence=" << uOfferSequence;
return temBAD_SEQUENCE;

File diff suppressed because it is too large Load Diff

View File

@@ -20,6 +20,8 @@
#ifndef RIPPLE_TX_OFFERCREATE_H_INCLUDED
#define RIPPLE_TX_OFFERCREATE_H_INCLUDED
#include <unordered_set>
namespace ripple {
class OfferCreateTransactorLog;
@@ -72,10 +74,9 @@ private:
STAmount const& saOfferPays,
STAmount const& saOfferGets,
uint160 const& uTakerAccountID,
boost::unordered_set<uint256>& usOfferUnfundedFound,
boost::unordered_set<uint256>& usOfferUnfundedBecame,
boost::unordered_set<uint160>& usAccountTouched,
STAmount& saOfferFunds) const;
std::unordered_set<uint256>& usOfferUnfundedBecame,
std::unordered_set<uint160>& usAccountTouched,
STAmount& saOfferFunds);
TER takeOffers (
bool const bOpenLedger,
@@ -90,7 +91,8 @@ private:
STAmount& saTakerGot,
bool& bUnfunded);
boost::unordered_set<uint256> usOfferUnfundedFound; // Offers found unfunded.
// Offers found unfunded.
std::unordered_set<uint256> usOfferUnfundedFound;
typedef std::pair <uint256, uint256> missingOffer_t;
std::set<missingOffer_t> usMissingOffers;

View File

@@ -43,7 +43,7 @@ TER PaymentTransactor::doApply ()
uint160 const uDstCurrency = saDstAmount.getCurrency ();
bool const bXRPDirect = uSrcCurrency.isZero () && uDstCurrency.isZero ();
m_journal.info <<
m_journal.trace <<
"saMaxAmount=" << saMaxAmount.getFullText () <<
" saDstAmount=" << saDstAmount.getFullText ();
@@ -52,42 +52,42 @@ TER PaymentTransactor::doApply ()
if (uTxFlags & tfPaymentMask)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Invalid flags set.";
return temINVALID_FLAG;
}
else if (!uDstAccountID)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Payment destination account not specified.";
return temDST_NEEDED;
}
else if (bMax && !saMaxAmount.isPositive ())
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: bad max amount: " << saMaxAmount.getFullText ();
return temBAD_AMOUNT;
}
else if (!saDstAmount.isPositive ())
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: bad dst amount: " << saDstAmount.getFullText ();
return temBAD_AMOUNT;
}
else if (CURRENCY_BAD == uSrcCurrency || CURRENCY_BAD == uDstCurrency)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Bad currency.";
return temBAD_CURRENCY;
}
else if (mTxnAccountID == uDstAccountID && uSrcCurrency == uDstCurrency && !bPaths)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Redundant transaction:" <<
" src=" << mTxnAccountID.ToString () <<
" dst=" << uDstAccountID.ToString () <<
@@ -98,42 +98,42 @@ TER PaymentTransactor::doApply ()
}
else if (bMax && saMaxAmount == saDstAmount && saMaxAmount.getCurrency () == saDstAmount.getCurrency ())
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Redundant SendMax.";
return temREDUNDANT_SEND_MAX;
}
else if (bXRPDirect && bMax)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: SendMax specified for XRP to XRP.";
return temBAD_SEND_XRP_MAX;
}
else if (bXRPDirect && bPaths)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Paths specified for XRP to XRP.";
return temBAD_SEND_XRP_PATHS;
}
else if (bXRPDirect && bPartialPayment)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Partial payment specified for XRP to XRP.";
return temBAD_SEND_XRP_PARTIAL;
}
else if (bXRPDirect && bLimitQuality)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Limit quality specified for XRP to XRP.";
return temBAD_SEND_XRP_LIMIT;
}
else if (bXRPDirect && bNoRippleDirect)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: No ripple direct specified for XRP to XRP.";
return temBAD_SEND_XRP_NO_DIRECT;
@@ -148,7 +148,7 @@ TER PaymentTransactor::doApply ()
if (!saDstAmount.isNative ())
{
m_journal.info <<
m_journal.trace <<
"Delay transaction: Destination account does not exist.";
// Another transaction could create the account and then this transaction would succeed.
@@ -157,7 +157,7 @@ TER PaymentTransactor::doApply ()
else if (isSetBit (mParams, tapOPEN_LEDGER) && bPartialPayment)
{
// Make retry work smaller, by rejecting this.
m_journal.info <<
m_journal.trace <<
"Delay transaction: Partial payment not allowed to create account.";
@@ -168,7 +168,7 @@ TER PaymentTransactor::doApply ()
// Note: Reserve is not scaled by load.
else if (saDstAmount.getNValue () < mEngine->getLedger ()->getReserve (0))
{
m_journal.info <<
m_journal.trace <<
"Delay transaction: Destination account does not exist. " <<
"Insufficent payment to create account.";
@@ -186,7 +186,7 @@ TER PaymentTransactor::doApply ()
}
else if ((sleDst->getFlags () & lsfRequireDestTag) && !mTxn.isFieldPresent (sfDestinationTag))
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: DestinationTag required.";
return tefDST_TAG_NEEDED;
@@ -240,7 +240,7 @@ TER PaymentTransactor::doApply ()
}
catch (std::exception const& e)
{
m_journal.info <<
m_journal.trace <<
"Caught throw: " << e.what ();
terResult = tefEXCEPTION;
@@ -257,7 +257,7 @@ TER PaymentTransactor::doApply ()
if (mPriorBalance < saDstAmount + std::max(uReserve, mTxn.getTransactionFee ().getNValue ()))
{
// Vote no. However, transaction might succeed, if applied in a different order.
m_journal.info << "Delay transaction: Insufficient funds: " <<
m_journal.trace << "Delay transaction: Insufficient funds: " <<
" " << mPriorBalance.getText () <<
" / " << (saDstAmount + uReserve).getText () <<
" (" << uReserve << ")";
@@ -282,7 +282,7 @@ TER PaymentTransactor::doApply ()
if (transResultInfo (terResult, strToken, strHuman))
{
m_journal.info <<
m_journal.trace <<
strToken << ": " << strHuman;
}
else

View File

@@ -39,7 +39,7 @@ TER RegularKeySetTransactor::doApply ()
if (uTxFlags & tfUniversalMask)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Invalid flags set.";
return temINVALID_FLAG;

View File

@@ -110,7 +110,7 @@ TER Transactor::payFee ()
// Only check fee is sufficient when the ledger is open.
if (isSetBit (mParams, tapOPEN_LEDGER) && saPaid < mFeeDue)
{
m_journal.info << "Insufficient fee paid: " <<
m_journal.trace << "Insufficient fee paid: " <<
saPaid.getText () << "/" << mFeeDue.getText ();
return telINSUF_FEE_P;
@@ -125,7 +125,7 @@ TER Transactor::payFee ()
// Will only write the account back, if the transaction succeeds.
if (mSourceBalance < saPaid)
{
m_journal.info << "Insufficient balance:" <<
m_journal.trace << "Insufficient balance:" <<
" balance=" << mSourceBalance.getText () <<
" paid=" << saPaid.getText ();
@@ -156,12 +156,12 @@ TER Transactor::checkSig ()
}
else if (mHasAuthKey)
{
m_journal.info << "applyTransaction: Delay: Not authorized to use account.";
m_journal.trace << "applyTransaction: Delay: Not authorized to use account.";
return tefBAD_AUTH;
}
else
{
m_journal.info << "applyTransaction: Invalid: Not authorized to use account.";
m_journal.trace << "applyTransaction: Invalid: Not authorized to use account.";
return temBAD_AUTH_MASTER;
}
@@ -180,7 +180,7 @@ TER Transactor::checkSeq ()
{
if (a_seq < t_seq)
{
m_journal.info << "apply: transaction has future sequence number";
m_journal.trace << "apply: transaction has future sequence number";
return terPRE_SEQ;
}

View File

@@ -49,7 +49,7 @@ TER TrustSetTransactor::doApply ()
if (uTxFlags & tfTrustSetMask)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Invalid flags set.";
return temINVALID_FLAG;
}
@@ -60,14 +60,14 @@ TER TrustSetTransactor::doApply ()
if (bSetAuth && !isSetBit (mTxnAccount->getFieldU32 (sfFlags), lsfRequireAuth))
{
m_journal.info <<
m_journal.trace <<
"Retry: Auth not required.";
return tefNO_AUTH_REQUIRED;
}
if (saLimitAmount.isNative ())
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Native credit limit: " <<
saLimitAmount.getFullText ();
return temBAD_LIMIT;
@@ -75,7 +75,7 @@ TER TrustSetTransactor::doApply ()
if (saLimitAmount.isNegative ())
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Negative credit limit.";
return temBAD_LIMIT;
}
@@ -83,7 +83,7 @@ TER TrustSetTransactor::doApply ()
// Check if destination makes sense.
if (!uDstAccountID || uDstAccountID == ACCOUNT_ONE)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Destination account not specified.";
return temDST_NEEDED;
@@ -106,7 +106,7 @@ TER TrustSetTransactor::doApply ()
}
else
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Can not extend credit to self.";
return temDST_IS_SRC;
}
@@ -117,7 +117,7 @@ TER TrustSetTransactor::doApply ()
if (!sleDst)
{
m_journal.info <<
m_journal.trace <<
"Delay transaction: Destination account does not exist.";
return tecNO_DST;
}
@@ -319,7 +319,7 @@ TER TrustSetTransactor::doApply ()
else if (bReserveIncrease
&& mPriorBalance.getNValue () < uReserveCreate) // Reserve is not scaled by load.
{
m_journal.info <<
m_journal.trace <<
"Delay transaction: Insufficent reserve to add trust line.";
// Another transaction could provide XRP to the account and then
@@ -330,7 +330,7 @@ TER TrustSetTransactor::doApply ()
{
mEngine->entryModify (sleRippleState);
m_journal.info <<
m_journal.trace <<
"Modify ripple line";
}
}
@@ -339,13 +339,13 @@ TER TrustSetTransactor::doApply ()
&& (!bQualityIn || !uQualityIn) // Not setting quality in or setting default quality in.
&& (!bQualityOut || !uQualityOut)) // Not setting quality out or setting default quality out.
{
m_journal.info <<
m_journal.trace <<
"Redundant: Setting non-existent ripple line to defaults.";
return tecNO_LINE_REDUNDANT;
}
else if (mPriorBalance.getNValue () < uReserveCreate) // Reserve is not scaled by load.
{
m_journal.info <<
m_journal.trace <<
"Delay transaction: Line does not exist. Insufficent reserve to create line.";
// Another transaction could create the account and then this transaction would succeed.
@@ -361,7 +361,7 @@ TER TrustSetTransactor::doApply ()
STAmount saBalance (STAmount (uCurrencyID, ACCOUNT_ONE));
m_journal.info <<
m_journal.trace <<
"doTrustSet: Creating ripple line: " <<
Ledger::getRippleStateIndex (mTxnAccountID, uDstAccountID, uCurrencyID).ToString ();

View File

@@ -25,7 +25,7 @@ TER WalletAddTransactor::doApply ()
if (uTxFlags & tfUniversalMask)
{
m_journal.info <<
m_journal.trace <<
"Malformed transaction: Invalid flags set.";
return temINVALID_FLAG;
@@ -44,7 +44,7 @@ TER WalletAddTransactor::doApply ()
Serializer::getSHA512Half (uAuthKeyID.begin (), uAuthKeyID.size ()),
vucSignature, ECDSA::not_strict))
{
m_journal.info <<
m_journal.trace <<
"Unauthorized: bad signature ";
return tefBAD_ADD_AUTH;
}
@@ -54,7 +54,7 @@ TER WalletAddTransactor::doApply ()
if (sleDst)
{
m_journal.info <<
m_journal.trace <<
"account already created";
return tefCREATED;
}
@@ -75,7 +75,7 @@ TER WalletAddTransactor::doApply ()
{
// Vote no. However, transaction might succeed, if applied in a
// different order.
m_journal.info <<
m_journal.trace <<
"Delay transaction: Insufficient funds: %s / %s (%d)" <<
saSrcBalance.getText () << " / " <<
(saDstAmount + uReserve).getText () << " with reserve = " <<