diff --git a/src/cpp/ripple/TransactionErr.cpp b/src/cpp/ripple/TransactionErr.cpp index 8e4c5e8ac..03c27da46 100644 --- a/src/cpp/ripple/TransactionErr.cpp +++ b/src/cpp/ripple/TransactionErr.cpp @@ -39,6 +39,7 @@ bool transResultInfo(TER terCode, std::string& strToken, std::string& strHuman) { temMALFORMED, "temMALFORMED", "Malformed transaction." }, { temBAD_AMOUNT, "temBAD_AMOUNT", "Can only send positive amounts." }, { temBAD_AUTH_MASTER, "temBAD_AUTH_MASTER", "Auth for unclaimed account needs correct master key." }, + { temBAD_FEE, "temBAD_FEE", "Negative fee." }, { temBAD_EXPIRATION, "temBAD_EXPIRATION", "Malformed." }, { temBAD_ISSUER, "temBAD_ISSUER", "Malformed." }, { temBAD_LIMIT, "temBAD_LIMIT", "Limits must be non-negative." }, @@ -51,7 +52,6 @@ bool transResultInfo(TER terCode, std::string& strToken, std::string& strHuman) { temBAD_SEQUENCE, "temBAD_SEQUENCE", "Malformed: Sequence in not in the past." }, { temDST_IS_SRC, "temDST_IS_SRC", "Destination may not be source." }, { temDST_NEEDED, "temDST_NEEDED", "Destination not specified." }, - { temINSUF_FEE_P, "temINSUF_FEE_P", "Fee not allowed." }, { temINVALID, "temINVALID", "The transaction is ill-formed." }, { temINVALID_FLAG, "temINVALID_FLAG", "The transaction has an invalid flag." }, { temREDUNDANT, "temREDUNDANT", "Sends same currency to self." }, diff --git a/src/cpp/ripple/TransactionErr.h b/src/cpp/ripple/TransactionErr.h index e7a667b07..1a497598f 100644 --- a/src/cpp/ripple/TransactionErr.h +++ b/src/cpp/ripple/TransactionErr.h @@ -27,6 +27,7 @@ enum TER // aka TransactionEngineResult temMALFORMED = -299, temBAD_AMOUNT, temBAD_AUTH_MASTER, + temBAD_FEE, temBAD_EXPIRATION, temBAD_ISSUER, temBAD_LIMIT, @@ -39,7 +40,6 @@ enum TER // aka TransactionEngineResult temBAD_SET_ID, temDST_IS_SRC, temDST_NEEDED, - temINSUF_FEE_P, temINVALID, temINVALID_FLAG, temREDUNDANT, diff --git a/src/cpp/ripple/Transactor.cpp b/src/cpp/ripple/Transactor.cpp index cc76d26e5..fd187ab39 100644 --- a/src/cpp/ripple/Transactor.cpp +++ b/src/cpp/ripple/Transactor.cpp @@ -57,6 +57,9 @@ TER Transactor::payFee() return telINSUF_FEE_P; } + if (saPaid.isNegative()) + return temBAD_AMOUNT; + if (!saPaid) return tesSUCCESS; // Deduct the fee, so it's not available during the transaction.