STObject::applyTemplate() throws with description of error:

The `STObject` member function `setType()` has been renamed to
applyTemplate() and modified to throw if there is a template
mismatch.

The error description in the exception is, in certain cases,
used, to better indicate why a particular transaction was
considered ill formed.

Fixes #2585.
This commit is contained in:
Scott Schurr
2018-11-02 17:50:27 -07:00
committed by Nik Bougalis
parent c354809e1c
commit ad5c5f1969
12 changed files with 221 additions and 132 deletions

View File

@@ -497,6 +497,10 @@ transactionPreProcessImpl (
stpTrans = std::make_shared<STTx> (
std::move (parsed.object.get()));
}
catch (STObject::FieldErr& err)
{
return RPC::make_error (rpcINVALID_PARAMS, err.what());
}
catch (std::exception&)
{
return RPC::make_error (rpcINTERNAL,
@@ -1098,6 +1102,10 @@ Json::Value transactionSubmitMultiSigned (
stpTrans = std::make_shared<STTx>(
std::move(parsedTx_json.object.get()));
}
catch (STObject::FieldErr& err)
{
return RPC::make_error (rpcINVALID_PARAMS, err.what());
}
catch (std::exception& ex)
{
std::string reason (ex.what ());