aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2018-04-02 11:16:56 -0400
committerMarcoFalke <falke.marco@gmail.com>2018-04-02 11:37:09 -0400
commitfafcad38c89457ff8b36088428d4f1bb3a3834ce (patch)
tree32037e6276721ecfd2d91a0c579d8ed0907db7ca
parent18815b4bfb20c9c1112e547217662529d81e4393 (diff)
downloadbitcoin-fafcad38c89457ff8b36088428d4f1bb3a3834ce.tar.xz
doc: Add testmempoolaccept to release-notes
-rw-r--r--doc/release-notes.md1
-rw-r--r--src/rpc/rawtransaction.cpp2
-rw-r--r--src/validation.cpp5
3 files changed, 4 insertions, 4 deletions
diff --git a/doc/release-notes.md b/doc/release-notes.md
index 48ee364c18..0a72f3fe4a 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -74,6 +74,7 @@ RPC changes
add `label` fields to returned JSON objects that previously only had
`account` fields.
- `sendmany` now shuffles outputs to improve privacy, so any previously expected behavior with regards to output ordering can no longer be relied upon.
+- The new RPC `testmempoolaccept` can be used to test acceptance of a transaction to the mempool without adding it.
External wallet files
---------------------
diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp
index 9d7aa58894..f0493de3bd 100644
--- a/src/rpc/rawtransaction.cpp
+++ b/src/rpc/rawtransaction.cpp
@@ -1198,7 +1198,7 @@ UniValue testmempoolaccept(const JSONRPCRequest& request)
{
LOCK(cs_main);
test_accept_res = AcceptToMemoryPool(mempool, state, std::move(tx), &missing_inputs,
- nullptr /* plTxnReplaced */, false /* bypass_limits */, max_raw_tx_fee, /* test_accpet */ true);
+ nullptr /* plTxnReplaced */, false /* bypass_limits */, max_raw_tx_fee, /* test_accept */ true);
}
result_0.pushKV("allowed", test_accept_res);
if (!test_accept_res) {
diff --git a/src/validation.cpp b/src/validation.cpp
index df8729e382..e881b45bd2 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -507,7 +507,7 @@ void UpdateMempoolForReorg(DisconnectedBlockTransactions &disconnectpool, bool f
// Used to avoid mempool polluting consensus critical paths if CCoinsViewMempool
// were somehow broken and returning the wrong scriptPubKeys
-static bool CheckInputsFromMempoolAndCache(const CTransaction& tx, CValidationState &state, const CCoinsViewCache &view, CTxMemPool& pool,
+static bool CheckInputsFromMempoolAndCache(const CTransaction& tx, CValidationState& state, const CCoinsViewCache& view, const CTxMemPool& pool,
unsigned int flags, bool cacheSigStore, PrecomputedTransactionData& txdata) {
AssertLockHeld(cs_main);
@@ -917,8 +917,7 @@ static bool AcceptToMemoryPoolWorker(const CChainParams& chainparams, CTxMemPool
// invalid blocks (using TestBlockValidity), however allowing such
// transactions into the mempool can be exploited as a DoS attack.
unsigned int currentBlockScriptVerifyFlags = GetBlockScriptFlags(chainActive.Tip(), Params().GetConsensus());
- if (!CheckInputsFromMempoolAndCache(tx, state, view, pool, currentBlockScriptVerifyFlags, true, txdata))
- {
+ if (!CheckInputsFromMempoolAndCache(tx, state, view, pool, currentBlockScriptVerifyFlags, true, txdata)) {
// If we're using promiscuousmempoolflags, we may hit this normally
// Check if current block has some flags that scriptVerifyFlags
// does not before printing an ominous warning