diff options
author | Gavin Andresen <gavinandresen@gmail.com> | 2013-09-22 16:44:35 -0700 |
---|---|---|
committer | Gavin Andresen <gavinandresen@gmail.com> | 2013-09-22 16:44:35 -0700 |
commit | ff4e3e63e776fb320b87d2506d911d5a7fa757a4 (patch) | |
tree | 7664d173e547e9fc616ab26ea17d05c77b607dd8 /src/rpcrawtransaction.cpp | |
parent | c2f41872638aaa097c2d0aec943ae8deeea667ad (diff) | |
parent | 9d14e689c86a395c11a530767db4ddf895446ba8 (diff) |
Merge pull request #2949 from gmaxwell/fewer_fee_footguns
[raw] reject insanely high fees by default in sendrawtransaction
Diffstat (limited to 'src/rpcrawtransaction.cpp')
-rw-r--r-- | src/rpcrawtransaction.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/rpcrawtransaction.cpp b/src/rpcrawtransaction.cpp index 5f33849f77..ce9d60e667 100644 --- a/src/rpcrawtransaction.cpp +++ b/src/rpcrawtransaction.cpp @@ -518,9 +518,9 @@ Value signrawtransaction(const Array& params, bool fHelp) Value sendrawtransaction(const Array& params, bool fHelp) { - if (fHelp || params.size() < 1 || params.size() > 1) + if (fHelp || params.size() < 1 || params.size() > 2) throw runtime_error( - "sendrawtransaction <hex string>\n" + "sendrawtransaction <hex string> [allowhighfees=false]\n" "Submits raw transaction (serialized, hex-encoded) to local node and network."); // parse hex string from parameter @@ -528,6 +528,10 @@ Value sendrawtransaction(const Array& params, bool fHelp) CDataStream ssData(txData, SER_NETWORK, PROTOCOL_VERSION); CTransaction tx; + bool fOverrideFees = false; + if (params.size() > 1) + fOverrideFees = params[1].get_bool(); + // deserialize binary data stream try { ssData >> tx; @@ -545,7 +549,7 @@ Value sendrawtransaction(const Array& params, bool fHelp) if (!fHave) { // push to local node CValidationState state; - if (!mempool.accept(state, tx, false, NULL)) + if (!mempool.accept(state, tx, false, NULL, !fOverrideFees)) throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "TX rejected"); // TODO: report validation state } } |