mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-22 20:15:51 +00:00
Make sure finally negative offers are not processed.
This commit is contained in:
@@ -458,8 +458,19 @@ TER OfferCreateTransactor::doApply()
|
|||||||
// cLog(lsWARNING) << "OfferCreate: takeOffers: uPaysIssuerID=" << RippleAddress::createHumanAccountID(uPaysIssuerID);
|
// cLog(lsWARNING) << "OfferCreate: takeOffers: uPaysIssuerID=" << RippleAddress::createHumanAccountID(uPaysIssuerID);
|
||||||
// cLog(lsWARNING) << "OfferCreate: takeOffers: uGetsIssuerID=" << RippleAddress::createHumanAccountID(uGetsIssuerID);
|
// cLog(lsWARNING) << "OfferCreate: takeOffers: uGetsIssuerID=" << RippleAddress::createHumanAccountID(uGetsIssuerID);
|
||||||
|
|
||||||
if (tesSUCCESS != terResult
|
if (tesSUCCESS != terResult)
|
||||||
|| !saTakerPays // Wants nothing more.
|
{
|
||||||
|
// Fail as is.
|
||||||
|
nothing();
|
||||||
|
}
|
||||||
|
else if (saTakerPays.isNegative() || saTakerGets.isNegative())
|
||||||
|
{
|
||||||
|
terResult = isSetBit(mParams, tapOPEN_LEDGER)
|
||||||
|
? telFAILED_PROCESSING // Ledger is not final, can vote no.
|
||||||
|
: tecFAILED_PROCESSING;
|
||||||
|
}
|
||||||
|
else if (
|
||||||
|
!saTakerPays // Wants nothing more.
|
||||||
|| !saTakerGets // Offering nothing more.
|
|| !saTakerGets // Offering nothing more.
|
||||||
|| bMarket // Do not persist.
|
|| bMarket // Do not persist.
|
||||||
|| !mEngine->getNodes().accountFunds(mTxnAccountID, saTakerGets).isPositive() // Not funded.
|
|| !mEngine->getNodes().accountFunds(mTxnAccountID, saTakerGets).isPositive() // Not funded.
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ bool transResultInfo(TER terCode, std::string& strToken, std::string& strHuman)
|
|||||||
} transResultInfoA[] = {
|
} transResultInfoA[] = {
|
||||||
{ tecCLAIM, "tecCLAIM", "Fee claimed. Sequence used. No action." },
|
{ tecCLAIM, "tecCLAIM", "Fee claimed. Sequence used. No action." },
|
||||||
{ tecDIR_FULL, "tecDIR_FULL", "Can not add entry to full directory." },
|
{ tecDIR_FULL, "tecDIR_FULL", "Can not add entry to full directory." },
|
||||||
|
{ tecFAILED_PROCESSING, "tecFAILED_PROCESSING", "Failed to correctly process transaction." },
|
||||||
{ tecINSUF_RESERVE_LINE, "tecINSUF_RESERVE_LINE", "Insufficent reserve to add trust line." },
|
{ tecINSUF_RESERVE_LINE, "tecINSUF_RESERVE_LINE", "Insufficent reserve to add trust line." },
|
||||||
{ tecINSUF_RESERVE_OFFER, "tecINSUF_RESERVE_OFFER", "Insufficent reserve to create offer." },
|
{ tecINSUF_RESERVE_OFFER, "tecINSUF_RESERVE_OFFER", "Insufficent reserve to create offer." },
|
||||||
{ tecNO_DST, "tecNO_DST", "Destination does not exist. Send XRP to create it." },
|
{ tecNO_DST, "tecNO_DST", "Destination does not exist. Send XRP to create it." },
|
||||||
@@ -42,6 +43,7 @@ bool transResultInfo(TER terCode, std::string& strToken, std::string& strHuman)
|
|||||||
{ telBAD_DOMAIN, "telBAD_DOMAIN", "Domain too long." },
|
{ telBAD_DOMAIN, "telBAD_DOMAIN", "Domain too long." },
|
||||||
{ telBAD_PATH_COUNT, "telBAD_PATH_COUNT", "Malformed: Too many paths." },
|
{ telBAD_PATH_COUNT, "telBAD_PATH_COUNT", "Malformed: Too many paths." },
|
||||||
{ telBAD_PUBLIC_KEY, "telBAD_PUBLIC_KEY", "Public key too long." },
|
{ telBAD_PUBLIC_KEY, "telBAD_PUBLIC_KEY", "Public key too long." },
|
||||||
|
{ telFAILED_PROCESSING, "telFAILED_PROCESSING", "Failed to correctly process transaction." },
|
||||||
{ telINSUF_FEE_P, "telINSUF_FEE_P", "Fee insufficient." },
|
{ telINSUF_FEE_P, "telINSUF_FEE_P", "Fee insufficient." },
|
||||||
{ telNO_DST_PARTIAL, "telNO_DST_PARTIAL", "Partial payment to create account not allowed." },
|
{ telNO_DST_PARTIAL, "telNO_DST_PARTIAL", "Partial payment to create account not allowed." },
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ enum TER // aka TransactionEngineResult
|
|||||||
telBAD_DOMAIN,
|
telBAD_DOMAIN,
|
||||||
telBAD_PATH_COUNT,
|
telBAD_PATH_COUNT,
|
||||||
telBAD_PUBLIC_KEY,
|
telBAD_PUBLIC_KEY,
|
||||||
|
telFAILED_PROCESSING,
|
||||||
telINSUF_FEE_P,
|
telINSUF_FEE_P,
|
||||||
telNO_DST_PARTIAL,
|
telNO_DST_PARTIAL,
|
||||||
|
|
||||||
@@ -121,6 +122,7 @@ enum TER // aka TransactionEngineResult
|
|||||||
tecUNFUNDED_ADD = 102,
|
tecUNFUNDED_ADD = 102,
|
||||||
tecUNFUNDED_OFFER = 103,
|
tecUNFUNDED_OFFER = 103,
|
||||||
tecUNFUNDED_PAYMENT = 104,
|
tecUNFUNDED_PAYMENT = 104,
|
||||||
|
tecFAILED_PROCESSING = 105,
|
||||||
tecDIR_FULL = 121,
|
tecDIR_FULL = 121,
|
||||||
tecINSUF_RESERVE_LINE = 122,
|
tecINSUF_RESERVE_LINE = 122,
|
||||||
tecINSUF_RESERVE_OFFER = 123,
|
tecINSUF_RESERVE_OFFER = 123,
|
||||||
|
|||||||
Reference in New Issue
Block a user