diff --git a/src/RPCServer.cpp b/src/RPCServer.cpp index 202f0e5e3d..4028d8496c 100644 --- a/src/RPCServer.cpp +++ b/src/RPCServer.cpp @@ -1451,7 +1451,7 @@ Json::Value RPCServer::doRipple(const Json::Value ¶ms) bLimit = params.size() != iArg ? params[iArg].asString() == "limit" : false; bAverage = params.size() != iArg ? params[iArg].asString() == "average" : false; - if (!bPartial && !bFull) + if (!bLimit && !bAverage) { return RPCError(rpcINVALID_PARAMS); } diff --git a/src/TransactionAction.cpp b/src/TransactionAction.cpp index 16d2e3f1ed..f37ef5a31c 100644 --- a/src/TransactionAction.cpp +++ b/src/TransactionAction.cpp @@ -166,18 +166,24 @@ TER TransactionEngine::doAccountSet(const SerializedTransaction& txn) { uint32 uRate = txn.getITFieldU32(sfTransferRate); - if (!uRate) + if (!uRate || uRate == QUALITY_ONE) { Log(lsINFO) << "doAccountSet: unset transfer rate"; mTxnAccount->makeIFieldAbsent(sfTransferRate); } - else + else if (uRate > QUALITY_ONE) { Log(lsINFO) << "doAccountSet: set transfer rate"; mTxnAccount->setIFieldU32(sfTransferRate, uRate); } + else + { + Log(lsINFO) << "doAccountSet: bad transfer rate"; + + return temBAD_TRANSFER_RATE; + } } // diff --git a/src/TransactionErr.cpp b/src/TransactionErr.cpp index 878d7cd1cd..85ea95594b 100644 --- a/src/TransactionErr.cpp +++ b/src/TransactionErr.cpp @@ -31,6 +31,7 @@ bool transResultInfo(TER terCode, std::string& strToken, std::string& strHuman) { temBAD_PATH, "temBAD_PATH", "Malformed." }, { temBAD_PATH_LOOP, "temBAD_PATH_LOOP", "Malformed." }, { temBAD_PUBLISH, "temBAD_PUBLISH", "Malformed: bad publish." }, + { temBAD_TRANSFER_RATE, "temBAD_TRANSFER_RATE", "Malformed: transfer rate must be >= 1.0" }, { temBAD_SET_ID, "temBAD_SET_ID", "Malformed." }, { temCREATEXNS, "temCREATEXNS", "Can not specify non XNS for Create." }, { temDST_IS_SRC, "temDST_IS_SRC", "Destination may not be source." }, @@ -89,3 +90,4 @@ std::string transHuman(TER terCode) return transResultInfo(terCode, strToken, strHuman) ? strHuman : "-"; } +// vim:ts=4 diff --git a/src/TransactionErr.h b/src/TransactionErr.h index 4f0d5a7994..7ce5cd6109 100644 --- a/src/TransactionErr.h +++ b/src/TransactionErr.h @@ -33,6 +33,7 @@ enum TER // aka TransactionEngineResult temBAD_PATH, temBAD_PATH_LOOP, temBAD_PUBLISH, + temBAD_TRANSFER_RATE, temBAD_SET_ID, temCREATEXNS, temDST_IS_SRC,