mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
51 lines
1.4 KiB
C++
51 lines
1.4 KiB
C++
|
|
TER OfferCancelTransactor::doApply()
|
|
{
|
|
TER terResult;
|
|
const uint32 uOfferSequence = mTxn.getFieldU32(sfOfferSequence);
|
|
const uint32 uAccountSequenceNext = mTxnAccount->getFieldU32(sfSequence);
|
|
|
|
WriteLog (lsDEBUG, OfferCancelTransactor) << "OfferCancel: uAccountSequenceNext=" << uAccountSequenceNext << " uOfferSequence=" << uOfferSequence;
|
|
|
|
const uint32 uTxFlags = mTxn.getFlags();
|
|
|
|
if (uTxFlags)
|
|
{
|
|
WriteLog (lsINFO, OfferCancelTransactor) << "OfferCancel: Malformed transaction: Invalid flags set.";
|
|
|
|
return temINVALID_FLAG;
|
|
}
|
|
|
|
if (!uOfferSequence || uAccountSequenceNext-1 <= uOfferSequence)
|
|
{
|
|
WriteLog (lsINFO, OfferCancelTransactor) << "OfferCancel: uAccountSequenceNext=" << uAccountSequenceNext << " uOfferSequence=" << uOfferSequence;
|
|
|
|
terResult = temBAD_SEQUENCE;
|
|
}
|
|
else
|
|
{
|
|
const uint256 uOfferIndex = Ledger::getOfferIndex(mTxnAccountID, uOfferSequence);
|
|
SLE::pointer sleOffer = mEngine->entryCache(ltOFFER, uOfferIndex);
|
|
|
|
if (sleOffer)
|
|
{
|
|
WriteLog (lsWARNING, OfferCancelTransactor) << "OfferCancel: uOfferSequence=" << uOfferSequence;
|
|
|
|
terResult = mEngine->getNodes().offerDelete(sleOffer, uOfferIndex, mTxnAccountID);
|
|
}
|
|
else
|
|
{
|
|
WriteLog (lsWARNING, OfferCancelTransactor) << "OfferCancel: offer not found: "
|
|
<< RippleAddress::createHumanAccountID(mTxnAccountID)
|
|
<< " : " << uOfferSequence
|
|
<< " : " << uOfferIndex.ToString();
|
|
|
|
terResult = tesSUCCESS;
|
|
}
|
|
}
|
|
|
|
return terResult;
|
|
}
|
|
|
|
// vim:ts=4
|