diff options
author | gzhao408 <gzhao408@berkeley.edu> | 2021-01-26 11:50:00 -0800 |
---|---|---|
committer | gzhao408 <gzhao408@berkeley.edu> | 2021-02-02 06:56:16 -0800 |
commit | 9db10a55061e09021ff8ea1d6637d99f7959035f (patch) | |
tree | 4bf700f1fc9d8c7a325112e00224a84c391751c2 | |
parent | f72d80b07af8ecbb2f9df1e87344eb465186f19d (diff) |
[refactor] clean up logic in testmempoolaccept
Cleans up reundant code and reduces the diff of the next commit.
-rw-r--r-- | src/rpc/rawtransaction.cpp | 37 |
1 files changed, 16 insertions, 21 deletions
diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp index ac42404470..31190ef9fc 100644 --- a/src/rpc/rawtransaction.cpp +++ b/src/rpc/rawtransaction.cpp @@ -955,35 +955,30 @@ static RPCHelpMan testmempoolaccept() nullptr /* plTxnReplaced */, false /* bypass_limits */, /* test_accept */ true, &fee); } - // Check that fee does not exceed maximum fee - if (test_accept_res && max_raw_tx_fee && fee > max_raw_tx_fee) { - result_0.pushKV("allowed", false); - result_0.pushKV("reject-reason", "max-fee-exceeded"); - result.push_back(std::move(result_0)); - return result; - } - result_0.pushKV("allowed", test_accept_res); - // Only return the fee and vsize if the transaction would pass ATMP. // These can be used to calculate the feerate. if (test_accept_res) { - result_0.pushKV("vsize", virtual_size); - UniValue fees(UniValue::VOBJ); - fees.pushKV("base", ValueFromAmount(fee)); - result_0.pushKV("fees", fees); + // Check that fee does not exceed maximum fee + if (max_raw_tx_fee && fee > max_raw_tx_fee) { + result_0.pushKV("allowed", false); + result_0.pushKV("reject-reason", "max-fee-exceeded"); + } else { + result_0.pushKV("allowed", true); + result_0.pushKV("vsize", virtual_size); + UniValue fees(UniValue::VOBJ); + fees.pushKV("base", ValueFromAmount(fee)); + result_0.pushKV("fees", fees); + } + result.push_back(std::move(result_0)); } else { - if (state.IsInvalid()) { - if (state.GetResult() == TxValidationResult::TX_MISSING_INPUTS) { - result_0.pushKV("reject-reason", "missing-inputs"); - } else { - result_0.pushKV("reject-reason", strprintf("%s", state.GetRejectReason())); - } + result_0.pushKV("allowed", false); + if (state.GetResult() == TxValidationResult::TX_MISSING_INPUTS) { + result_0.pushKV("reject-reason", "missing-inputs"); } else { result_0.pushKV("reject-reason", state.GetRejectReason()); } + result.push_back(std::move(result_0)); } - - result.push_back(std::move(result_0)); return result; }, }; |