Add disabled support for setting RequireDestTag.

This commit is contained in:
Arthur Britto
2013-01-03 14:25:57 -08:00
parent 039568616c
commit 21940ee9cf
2 changed files with 45 additions and 0 deletions

View File

@@ -8,13 +8,50 @@ TER AccountSetTransactor::doApply()
const uint32 uTxFlags = mTxn.getFlags();
#if ENABLE_REQUIRE_DEST_TAG
const uint32 uFlagsIn = mTxnAccount->getFieldU32(sfFlags);
uint32 uFlagsOut = uFlagsIn;
if (uTxFlags & tfAccountSetMask)
#else
if (uTxFlags)
#endif
{
cLog(lsINFO) << "AccountSet: Malformed transaction: Invalid flags set.";
return temINVALID_FLAG;
}
#if ENABLE_REQUIRE_DEST_TAG
//
// RequireDestTag
//
if ((tfRequireDestTag|tfOptionalDestTag) == (uTxFlags & (tfRequireDestTag|tfOptionalDestTag)))
{
cLog(lsINFO) << "AccountSet: Malformed transaction: Contradictory flags set.";
return temINVALID_FLAG;
}
if (uTxFlags & tfRequireDestTag)
{
cLog(lsINFO) << "AccountSet: Set RequireDestTag.";
uFlagsOut |= lsfRequireDestTag;
}
if (uTxFlags & tfOptionalDestTag)
{
cLog(lsINFO) << "AccountSet: Clear RequireDestTag.";
uFlagsOut &= ~lsfRequireDestTag;
}
if (uFlagsIn != uFlagsOut)
mTxnAccount->setFieldU32(sfFlags, uFlagsOut);
#endif
//
// EmailHash
//

View File

@@ -2,6 +2,7 @@
#define __TRANSACTIONFORMATS__
#include "SerializedObject.h"
#include "LedgerFormats.h"
enum TransactionType
{
@@ -58,6 +59,13 @@ const int TransactionMaxLen = 1048576;
// Transaction flags.
//
#if ENABLE_REQUIRE_DEST_TAG
// AccountSet flags:
const uint32 tfRequireDestTag = 0x00010000;
const uint32 tfOptionalDestTag = 0x00020000;
const uint32 tfAccountSetMask = ~(tfRequireDestTag|tfOptionalDestTag);
#endif
// OfferCreate flags:
const uint32 tfPassive = 0x00010000;
const uint32 tfOfferCreateMask = ~(tfPassive);