aboutsummaryrefslogtreecommitdiff
path: root/src/rpc/mempool.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/rpc/mempool.cpp')
-rw-r--r--src/rpc/mempool.cpp43
1 files changed, 23 insertions, 20 deletions
diff --git a/src/rpc/mempool.cpp b/src/rpc/mempool.cpp
index e599c7dc92..fd11f6cfeb 100644
--- a/src/rpc/mempool.cpp
+++ b/src/rpc/mempool.cpp
@@ -11,6 +11,7 @@
#include <core_io.h>
#include <kernel/mempool_entry.h>
#include <node/mempool_persist_args.h>
+#include <node/types.h>
#include <policy/rbf.h>
#include <policy/settings.h>
#include <primitives/transaction.h>
@@ -32,6 +33,8 @@ using node::DEFAULT_MAX_BURN_AMOUNT;
using node::DEFAULT_MAX_RAW_TX_FEE_RATE;
using node::MempoolPath;
using node::NodeContext;
+using node::TransactionError;
+using util::ToString;
static RPCHelpMan sendrawtransaction()
{
@@ -82,7 +85,7 @@ static RPCHelpMan sendrawtransaction()
CTransactionRef tx(MakeTransactionRef(std::move(mtx)));
- const CFeeRate max_raw_tx_fee_rate{ParseFeeRate(self.Arg<UniValue>(1))};
+ const CFeeRate max_raw_tx_fee_rate{ParseFeeRate(self.Arg<UniValue>("maxfeerate"))};
int64_t virtual_size = GetVirtualTransactionSize(*tx);
CAmount max_raw_tx_fee = max_raw_tx_fee_rate.GetFee(virtual_size);
@@ -162,7 +165,7 @@ static RPCHelpMan testmempoolaccept()
"Array must contain between 1 and " + ToString(MAX_PACKAGE_COUNT) + " transactions.");
}
- const CFeeRate max_raw_tx_fee_rate{ParseFeeRate(self.Arg<UniValue>(1))};
+ const CFeeRate max_raw_tx_fee_rate{ParseFeeRate(self.Arg<UniValue>("maxfeerate"))};
std::vector<CTransactionRef> txns;
txns.reserve(raw_transactions.size());
@@ -202,7 +205,7 @@ static RPCHelpMan testmempoolaccept()
auto it = package_result.m_tx_results.find(tx->GetWitnessHash());
if (exit_early || it == package_result.m_tx_results.end()) {
// Validation unfinished. Just return the txid and wtxid.
- rpc_result.push_back(result_inner);
+ rpc_result.push_back(std::move(result_inner));
continue;
}
const auto& tx_result = it->second;
@@ -229,8 +232,8 @@ static RPCHelpMan testmempoolaccept()
for (const auto& wtxid : tx_result.m_wtxids_fee_calculations.value()) {
effective_includes_res.push_back(wtxid.ToString());
}
- fees.pushKV("effective-includes", effective_includes_res);
- result_inner.pushKV("fees", fees);
+ fees.pushKV("effective-includes", std::move(effective_includes_res));
+ result_inner.pushKV("fees", std::move(fees));
}
} else {
result_inner.pushKV("allowed", false);
@@ -241,7 +244,7 @@ static RPCHelpMan testmempoolaccept()
result_inner.pushKV("reject-reason", state.GetRejectReason());
}
}
- rpc_result.push_back(result_inner);
+ rpc_result.push_back(std::move(result_inner));
}
return rpc_result;
},
@@ -295,7 +298,7 @@ static void entryToJSON(const CTxMemPool& pool, UniValue& info, const CTxMemPool
fees.pushKV("modified", ValueFromAmount(e.GetModifiedFee()));
fees.pushKV("ancestor", ValueFromAmount(e.GetModFeesWithAncestors()));
fees.pushKV("descendant", ValueFromAmount(e.GetModFeesWithDescendants()));
- info.pushKV("fees", fees);
+ info.pushKV("fees", std::move(fees));
const CTransaction& tx = e.GetTx();
std::set<std::string> setDepends;
@@ -311,14 +314,14 @@ static void entryToJSON(const CTxMemPool& pool, UniValue& info, const CTxMemPool
depends.push_back(dep);
}
- info.pushKV("depends", depends);
+ info.pushKV("depends", std::move(depends));
UniValue spent(UniValue::VARR);
for (const CTxMemPoolEntry& child : e.GetMemPoolChildrenConst()) {
spent.push_back(child.GetTx().GetHash().ToString());
}
- info.pushKV("spentby", spent);
+ info.pushKV("spentby", std::move(spent));
// Add opt-in RBF status
bool rbfStatus = false;
@@ -347,7 +350,7 @@ UniValue MempoolToJSON(const CTxMemPool& pool, bool verbose, bool include_mempoo
// Mempool has unique entries so there is no advantage in using
// UniValue::pushKV, which checks if the key already exists in O(N).
// UniValue::pushKVEnd is used instead which currently is O(1).
- o.pushKVEnd(e.GetTx().GetHash().ToString(), info);
+ o.pushKVEnd(e.GetTx().GetHash().ToString(), std::move(info));
}
return o;
} else {
@@ -364,7 +367,7 @@ UniValue MempoolToJSON(const CTxMemPool& pool, bool verbose, bool include_mempoo
return a;
} else {
UniValue o(UniValue::VOBJ);
- o.pushKV("txids", a);
+ o.pushKV("txids", std::move(a));
o.pushKV("mempool_sequence", mempool_sequence);
return o;
}
@@ -474,7 +477,7 @@ static RPCHelpMan getmempoolancestors()
const uint256& _hash = e.GetTx().GetHash();
UniValue info(UniValue::VOBJ);
entryToJSON(mempool, info, e);
- o.pushKV(_hash.ToString(), info);
+ o.pushKV(_hash.ToString(), std::move(info));
}
return o;
}
@@ -539,7 +542,7 @@ static RPCHelpMan getmempooldescendants()
const uint256& _hash = e.GetTx().GetHash();
UniValue info(UniValue::VOBJ);
entryToJSON(mempool, info, e);
- o.pushKV(_hash.ToString(), info);
+ o.pushKV(_hash.ToString(), std::move(info));
}
return o;
}
@@ -653,7 +656,7 @@ static RPCHelpMan gettxspendingprevout()
o.pushKV("spendingtxid", spendingTx->GetHash().ToString());
}
- result.push_back(o);
+ result.push_back(std::move(o));
}
return result;
@@ -873,7 +876,7 @@ static RPCHelpMan submitpackage()
}
// Fee check needs to be run with chainstate and package context
- const CFeeRate max_raw_tx_fee_rate = ParseFeeRate(self.Arg<UniValue>(1));
+ const CFeeRate max_raw_tx_fee_rate{ParseFeeRate(self.Arg<UniValue>("maxfeerate"))};
std::optional<CFeeRate> client_maxfeerate{max_raw_tx_fee_rate};
// 0-value is special; it's mapped to no sanity check
if (max_raw_tx_fee_rate == CFeeRate(0)) {
@@ -992,20 +995,20 @@ static RPCHelpMan submitpackage()
for (const auto& wtxid : tx_result.m_wtxids_fee_calculations.value()) {
effective_includes_res.push_back(wtxid.ToString());
}
- fees.pushKV("effective-includes", effective_includes_res);
+ fees.pushKV("effective-includes", std::move(effective_includes_res));
}
- result_inner.pushKV("fees", fees);
+ result_inner.pushKV("fees", std::move(fees));
for (const auto& ptx : it->second.m_replaced_transactions) {
replaced_txids.insert(ptx->GetHash());
}
break;
}
- tx_result_map.pushKV(tx->GetWitnessHash().GetHex(), result_inner);
+ tx_result_map.pushKV(tx->GetWitnessHash().GetHex(), std::move(result_inner));
}
- rpc_result.pushKV("tx-results", tx_result_map);
+ rpc_result.pushKV("tx-results", std::move(tx_result_map));
UniValue replaced_list(UniValue::VARR);
for (const uint256& hash : replaced_txids) replaced_list.push_back(hash.ToString());
- rpc_result.pushKV("replaced-transactions", replaced_list);
+ rpc_result.pushKV("replaced-transactions", std::move(replaced_list));
return rpc_result;
},
};