diff --git a/src/WSDoor.cpp b/src/WSDoor.cpp index da00ea400..f9106112f 100644 --- a/src/WSDoor.cpp +++ b/src/WSDoor.cpp @@ -946,7 +946,18 @@ void WSConnection::doSubmit(Json::Value& jvResult, const Json::Value& jvRequest) sopTrans->setFieldVL(sfSigningPubKey, naAccountPublic.getAccountPublic()); - SerializedTransaction::pointer stpTrans = boost::make_shared(*sopTrans); + SerializedTransaction::pointer stpTrans; + + try + { + stpTrans = boost::make_shared(*sopTrans); + } + catch (std::exception& e) + { + jvResult["error"] = "invalidTransaction"; + jvResult["error_exception"] = e.what(); + return; + } stpTrans->sign(naAccountPrivate);