rpc: Always throw in getblockstats if -txindex is required
Previously blocks with only the coinbase transaction didn't cause the RPC error even if the requested stats required -txindex and it wasn't enabled.
This commit is contained in:
parent
d387507aec
commit
3be209d103
2 changed files with 6 additions and 4 deletions
|
@ -1798,6 +1798,10 @@ static UniValue getblockstats(const JSONRPCRequest& request)
|
||||||
const bool do_calculate_weight = do_all || SetHasKeys(stats, "total_weight", "avgfeerate", "swtotal_weight", "avgfeerate", "feerate_percentiles", "minfeerate", "maxfeerate");
|
const bool do_calculate_weight = do_all || SetHasKeys(stats, "total_weight", "avgfeerate", "swtotal_weight", "avgfeerate", "feerate_percentiles", "minfeerate", "maxfeerate");
|
||||||
const bool do_calculate_sw = do_all || SetHasKeys(stats, "swtxs", "swtotal_size", "swtotal_weight");
|
const bool do_calculate_sw = do_all || SetHasKeys(stats, "swtxs", "swtotal_size", "swtotal_weight");
|
||||||
|
|
||||||
|
if (loop_inputs && !g_txindex) {
|
||||||
|
throw JSONRPCError(RPC_INVALID_PARAMETER, "One or more of the selected stats requires -txindex enabled");
|
||||||
|
}
|
||||||
|
|
||||||
CAmount maxfee = 0;
|
CAmount maxfee = 0;
|
||||||
CAmount maxfeerate = 0;
|
CAmount maxfeerate = 0;
|
||||||
CAmount minfee = MAX_MONEY;
|
CAmount minfee = MAX_MONEY;
|
||||||
|
@ -1861,10 +1865,6 @@ static UniValue getblockstats(const JSONRPCRequest& request)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loop_inputs) {
|
if (loop_inputs) {
|
||||||
|
|
||||||
if (!g_txindex) {
|
|
||||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "One or more of the selected stats requires -txindex enabled");
|
|
||||||
}
|
|
||||||
CAmount tx_total_in = 0;
|
CAmount tx_total_in = 0;
|
||||||
for (const CTxIn& in : tx->vin) {
|
for (const CTxIn& in : tx->vin) {
|
||||||
CTransactionRef tx_in;
|
CTransactionRef tx_in;
|
||||||
|
|
|
@ -169,6 +169,8 @@ class GetblockstatsTest(BitcoinTestFramework):
|
||||||
assert_raises_rpc_error(-8, 'Invalid selected statistic aaa%s' % inv_sel_stat,
|
assert_raises_rpc_error(-8, 'Invalid selected statistic aaa%s' % inv_sel_stat,
|
||||||
self.nodes[0].getblockstats, hash_or_height=1, stats=['minfee' , 'aaa%s' % inv_sel_stat])
|
self.nodes[0].getblockstats, hash_or_height=1, stats=['minfee' , 'aaa%s' % inv_sel_stat])
|
||||||
|
|
||||||
|
assert_raises_rpc_error(-8, 'One or more of the selected stats requires -txindex enabled',
|
||||||
|
self.nodes[1].getblockstats, hash_or_height=1)
|
||||||
assert_raises_rpc_error(-8, 'One or more of the selected stats requires -txindex enabled',
|
assert_raises_rpc_error(-8, 'One or more of the selected stats requires -txindex enabled',
|
||||||
self.nodes[1].getblockstats, hash_or_height=self.start_height + self.max_stat_pos)
|
self.nodes[1].getblockstats, hash_or_height=self.start_height + self.max_stat_pos)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue