mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-21 15:50:07 +01:00
Merge bitcoin/bitcoin#31650: refactor: Avoid copies by using const references or by move-construction
fa64d8424brefactor: Enforce readability-avoid-const-params-in-decls (MarcoFalke)faf0c2d942refactor: Avoid copies by using const references or by move-construction (MarcoFalke) Pull request description: Top level `const` in declarations is problematic for many reasons: * It is often a typo, where one wanted to denote a const reference. For example `bool PSBTInputSignedAndVerified(const PartiallySignedTransaction psbt, ...` is missing the `&`. This will create a redundant copy of the value. * In constructors it prevents move construction. * It can incorrectly imply some data is const, like in an imaginary example `std::span<int> Shuffle(const std::span<int>);`, where the `int`s are *not* const. * The compiler ignores the `const` from the declaration in the implementation. * It isn't used consistently anyway, not even on the same line. Fix some issues by: * Using a const reference to avoid a copy, where read-only of the value is intended. This is only done for values that may be expensive to copy. * Using move-construction to avoid a copy * Applying `readability-avoid-const-params-in-decls` via clang-tidy ACKs for top commit: l0rinc: diff reACKfa64d8424bhebasto: ACKfa64d8424b, I have reviewed the code and it looks OK. sedited: ACKfa64d8424bTree-SHA512: 293c000b4ebf8fdcc75259eb0283a2e4e7892c73facfb5c3182464d6cb6a868b7f4a6682d664426bf2edecd665cf839d790bef0bae43a8c3bf1ddfdd3d068d38
This commit is contained in:
@@ -24,6 +24,7 @@ performance-*,
|
||||
-performance-no-int-to-ptr,
|
||||
-performance-noexcept-move-constructor,
|
||||
-performance-unnecessary-value-param,
|
||||
readability-avoid-const-params-in-decls,
|
||||
readability-const-return-type,
|
||||
readability-container-contains,
|
||||
readability-redundant-declaration,
|
||||
|
||||
@@ -172,7 +172,7 @@ public:
|
||||
*
|
||||
* @return A vector of randomly selected addresses from vRandom.
|
||||
*/
|
||||
std::vector<CAddress> GetAddr(size_t max_addresses, size_t max_pct, std::optional<Network> network, const bool filtered = true) const;
|
||||
std::vector<CAddress> GetAddr(size_t max_addresses, size_t max_pct, std::optional<Network> network, bool filtered = true) const;
|
||||
|
||||
/**
|
||||
* Returns an information-location pair for all addresses in the selected addrman table.
|
||||
|
||||
@@ -135,7 +135,7 @@ public:
|
||||
std::pair<CAddress, NodeSeconds> Select(bool new_only, const std::unordered_set<Network>& networks) const
|
||||
EXCLUSIVE_LOCKS_REQUIRED(!cs);
|
||||
|
||||
std::vector<CAddress> GetAddr(size_t max_addresses, size_t max_pct, std::optional<Network> network, const bool filtered = true) const
|
||||
std::vector<CAddress> GetAddr(size_t max_addresses, size_t max_pct, std::optional<Network> network, bool filtered = true) const
|
||||
EXCLUSIVE_LOCKS_REQUIRED(!cs);
|
||||
|
||||
std::vector<std::pair<AddrInfo, AddressPosition>> GetEntries(bool from_tried) const
|
||||
@@ -267,7 +267,7 @@ private:
|
||||
* */
|
||||
nid_type GetEntry(bool use_tried, size_t bucket, size_t position) const EXCLUSIVE_LOCKS_REQUIRED(cs);
|
||||
|
||||
std::vector<CAddress> GetAddr_(size_t max_addresses, size_t max_pct, std::optional<Network> network, const bool filtered = true) const EXCLUSIVE_LOCKS_REQUIRED(cs);
|
||||
std::vector<CAddress> GetAddr_(size_t max_addresses, size_t max_pct, std::optional<Network> network, bool filtered = true) const EXCLUSIVE_LOCKS_REQUIRED(cs);
|
||||
|
||||
std::vector<std::pair<AddrInfo, AddressPosition>> GetEntries_(bool from_tried) const EXCLUSIVE_LOCKS_REQUIRED(cs);
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ class ArgsManager;
|
||||
/**
|
||||
* Creates and returns a std::unique_ptr<CChainParams> of the chosen chain.
|
||||
*/
|
||||
std::unique_ptr<const CChainParams> CreateChainParams(const ArgsManager& args, const ChainType chain);
|
||||
std::unique_ptr<const CChainParams> CreateChainParams(const ArgsManager& args, ChainType chain);
|
||||
|
||||
/**
|
||||
* Return the currently selected parameters. This won't change after app
|
||||
@@ -26,6 +26,6 @@ const CChainParams &Params();
|
||||
/**
|
||||
* Sets the params returned by Params() to those for the given chain type.
|
||||
*/
|
||||
void SelectParams(const ChainType chain);
|
||||
void SelectParams(ChainType chain);
|
||||
|
||||
#endif // BITCOIN_CHAINPARAMS_H
|
||||
|
||||
@@ -35,7 +35,7 @@ private:
|
||||
/**
|
||||
* Creates and returns a std::unique_ptr<CBaseChainParams> of the chosen chain.
|
||||
*/
|
||||
std::unique_ptr<CBaseChainParams> CreateBaseChainParams(const ChainType chain);
|
||||
std::unique_ptr<CBaseChainParams> CreateBaseChainParams(ChainType chain);
|
||||
|
||||
/**
|
||||
*Set the arguments for chainparams
|
||||
@@ -49,7 +49,7 @@ void SetupChainParamsBaseOptions(ArgsManager& argsman);
|
||||
const CBaseChainParams& BaseParams();
|
||||
|
||||
/** Sets the params returned by Params() to those for the given chain. */
|
||||
void SelectBaseParams(const ChainType chain);
|
||||
void SelectBaseParams(ChainType chain);
|
||||
|
||||
/** List of possible chain / network names */
|
||||
#define LIST_CHAIN_NAMES "main, test, testnet4, signet, regtest"
|
||||
|
||||
@@ -61,7 +61,7 @@ public:
|
||||
* It should generally always be a random value (and is largely only exposed for unit testing)
|
||||
* nFlags should be one of the BLOOM_UPDATE_* enums (not _MASK)
|
||||
*/
|
||||
CBloomFilter(const unsigned int nElements, const double nFPRate, const unsigned int nTweak, unsigned char nFlagsIn);
|
||||
CBloomFilter(unsigned int nElements, double nFPRate, unsigned int nTweak, unsigned char nFlagsIn);
|
||||
CBloomFilter() : nHashFuncs(0), nTweak(0), nFlags(0) {}
|
||||
|
||||
SERIALIZE_METHODS(CBloomFilter, obj) { READWRITE(obj.vData, obj.nHashFuncs, obj.nTweak, obj.nFlags); }
|
||||
@@ -108,7 +108,7 @@ public:
|
||||
class CRollingBloomFilter
|
||||
{
|
||||
public:
|
||||
CRollingBloomFilter(const unsigned int nElements, const double nFPRate);
|
||||
CRollingBloomFilter(unsigned int nElements, double nFPRate);
|
||||
|
||||
void insert(std::span<const unsigned char> vKey);
|
||||
bool contains(std::span<const unsigned char> vKey) const;
|
||||
|
||||
@@ -31,7 +31,7 @@ std::string FeeModeInfo(std::pair<std::string, FeeEstimateMode>& mode);
|
||||
std::string FeeModesDetail(std::string default_info);
|
||||
std::string InvalidEstimateModeErrorMessage();
|
||||
bilingual_str PSBTErrorString(PSBTError error);
|
||||
bilingual_str TransactionErrorString(const node::TransactionError error);
|
||||
bilingual_str TransactionErrorString(node::TransactionError error);
|
||||
bilingual_str ResolveErrMsg(const std::string& optname, const std::string& strBind);
|
||||
bilingual_str InvalidPortErrMsg(const std::string& optname, const std::string& strPort);
|
||||
bilingual_str AmountHighWarn(const std::string& optname);
|
||||
|
||||
@@ -72,6 +72,6 @@ bool MessageSign(
|
||||
*/
|
||||
uint256 MessageHash(const std::string& message);
|
||||
|
||||
std::string SigningResultString(const SigningResult res);
|
||||
std::string SigningResultString(SigningResult res);
|
||||
|
||||
#endif // BITCOIN_COMMON_SIGNMESSAGE_H
|
||||
|
||||
@@ -34,7 +34,7 @@ enum class TxVerbosity {
|
||||
|
||||
// core_read.cpp
|
||||
CScript ParseScript(const std::string& s);
|
||||
std::string ScriptToAsmStr(const CScript& script, const bool fAttemptSighashDecode = false);
|
||||
std::string ScriptToAsmStr(const CScript& script, bool fAttemptSighashDecode = false);
|
||||
[[nodiscard]] bool DecodeHexTx(CMutableTransaction& tx, const std::string& hex_tx, bool try_no_witness = false, bool try_witness = true);
|
||||
[[nodiscard]] bool DecodeHexBlk(CBlock&, const std::string& strHexBlk);
|
||||
bool DecodeHexBlockHeader(CBlockHeader&, const std::string& hex_header);
|
||||
@@ -42,7 +42,7 @@ bool DecodeHexBlockHeader(CBlockHeader&, const std::string& hex_header);
|
||||
[[nodiscard]] util::Result<int> SighashFromStr(const std::string& sighash);
|
||||
|
||||
// core_write.cpp
|
||||
UniValue ValueFromAmount(const CAmount amount);
|
||||
UniValue ValueFromAmount(CAmount amount);
|
||||
std::string FormatScript(const CScript& script);
|
||||
std::string EncodeHexTx(const CTransaction& tx);
|
||||
std::string SighashToStr(unsigned char sighash_type);
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
/**
|
||||
* Convert a span of bytes to a lower-case hexadecimal string.
|
||||
*/
|
||||
std::string HexStr(const std::span<const uint8_t> s);
|
||||
inline std::string HexStr(const std::span<const char> s) { return HexStr(MakeUCharSpan(s)); }
|
||||
inline std::string HexStr(const std::span<const std::byte> s) { return HexStr(MakeUCharSpan(s)); }
|
||||
std::string HexStr(std::span<const uint8_t> s);
|
||||
inline std::string HexStr(std::span<const char> s) { return HexStr(MakeUCharSpan(s)); }
|
||||
inline std::string HexStr(std::span<const std::byte> s) { return HexStr(MakeUCharSpan(s)); }
|
||||
|
||||
signed char HexDigit(char c);
|
||||
|
||||
|
||||
@@ -30,6 +30,6 @@ inline std::string DeploymentName(Consensus::DeploymentPos pos)
|
||||
return VersionBitsDeploymentInfo[pos].name;
|
||||
}
|
||||
|
||||
std::optional<Consensus::BuriedDeployment> GetBuriedDeployment(const std::string_view deployment_name);
|
||||
std::optional<Consensus::BuriedDeployment> GetBuriedDeployment(std::string_view deployment_name);
|
||||
|
||||
#endif // BITCOIN_DEPLOYMENTINFO_H
|
||||
|
||||
@@ -15,14 +15,15 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
ExternalSigner::ExternalSigner(const std::string& command, const std::string chain, const std::string& fingerprint, const std::string name): m_command(command), m_chain(chain), m_fingerprint(fingerprint), m_name(name) {}
|
||||
ExternalSigner::ExternalSigner(std::string command, std::string chain, std::string fingerprint, std::string name)
|
||||
: m_command{std::move(command)}, m_chain{std::move(chain)}, m_fingerprint{std::move(fingerprint)}, m_name{std::move(name)} {}
|
||||
|
||||
std::string ExternalSigner::NetworkArg() const
|
||||
{
|
||||
return " --chain " + m_chain;
|
||||
}
|
||||
|
||||
bool ExternalSigner::Enumerate(const std::string& command, std::vector<ExternalSigner>& signers, const std::string chain)
|
||||
bool ExternalSigner::Enumerate(const std::string& command, std::vector<ExternalSigner>& signers, const std::string& chain)
|
||||
{
|
||||
// Call <command> enumerate
|
||||
const UniValue result = RunCommandParseJSON(command + " enumerate");
|
||||
|
||||
@@ -31,7 +31,7 @@ public:
|
||||
//! @param[in] fingerprint master key fingerprint of the signer
|
||||
//! @param[in] chain "main", "test", "regtest" or "signet"
|
||||
//! @param[in] name device name
|
||||
ExternalSigner(const std::string& command, const std::string chain, const std::string& fingerprint, const std::string name);
|
||||
ExternalSigner(std::string command, std::string chain, std::string fingerprint, std::string name);
|
||||
|
||||
//! Master key fingerprint of the signer
|
||||
std::string m_fingerprint;
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
//! @param[in,out] signers vector to which new signers (with a unique master key fingerprint) are added
|
||||
//! @param chain "main", "test", "regtest" or "signet"
|
||||
//! @returns success
|
||||
static bool Enumerate(const std::string& command, std::vector<ExternalSigner>& signers, const std::string chain);
|
||||
static bool Enumerate(const std::string& command, std::vector<ExternalSigner>& signers, const std::string& chain);
|
||||
|
||||
//! Display address on the device. Calls `<command> displayaddress --desc <descriptor>`.
|
||||
//! @param[in] descriptor Descriptor specifying which address to display.
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
//! Calls `<command> getdescriptors --account <account>`
|
||||
//! @param[in] account which BIP32 account to use (e.g. `m/44'/0'/account'`)
|
||||
//! @returns see doc/external-signer.md
|
||||
UniValue GetDescriptors(const int account);
|
||||
UniValue GetDescriptors(int account);
|
||||
|
||||
//! Sign PartiallySignedTransaction on the device.
|
||||
//! Calls `<command> signtransaction` and passes the PSBT via stdin.
|
||||
|
||||
@@ -105,7 +105,7 @@ public:
|
||||
* On testnet this will additionally return a template with difficulty 1 if
|
||||
* the tip is more than 20 minutes old.
|
||||
*/
|
||||
virtual std::unique_ptr<BlockTemplate> waitNext(const node::BlockWaitOptions options = {}) = 0;
|
||||
virtual std::unique_ptr<BlockTemplate> waitNext(node::BlockWaitOptions options = {}) = 0;
|
||||
|
||||
/**
|
||||
* Interrupts the current wait for the next block template.
|
||||
|
||||
@@ -95,7 +95,7 @@ public:
|
||||
virtual std::string getWalletName() = 0;
|
||||
|
||||
// Get a new address.
|
||||
virtual util::Result<CTxDestination> getNewDestination(const OutputType type, const std::string& label) = 0;
|
||||
virtual util::Result<CTxDestination> getNewDestination(OutputType type, const std::string& label) = 0;
|
||||
|
||||
//! Get public key.
|
||||
virtual bool getPubKey(const CScript& script, const CKeyID& address, CPubKey& pub_key) = 0;
|
||||
@@ -130,7 +130,7 @@ public:
|
||||
virtual util::Result<void> displayAddress(const CTxDestination& dest) = 0;
|
||||
|
||||
//! Lock coin.
|
||||
virtual bool lockCoin(const COutPoint& output, const bool write_to_db) = 0;
|
||||
virtual bool lockCoin(const COutPoint& output, bool write_to_db) = 0;
|
||||
|
||||
//! Unlock coin.
|
||||
virtual bool unlockCoin(const COutPoint& output) = 0;
|
||||
|
||||
@@ -760,7 +760,7 @@ BITCOINKERNEL_API void btck_logging_disable();
|
||||
*
|
||||
* @param[in] options Sets formatting options of the log messages.
|
||||
*/
|
||||
BITCOINKERNEL_API void btck_logging_set_options(const btck_LoggingOptions options);
|
||||
BITCOINKERNEL_API void btck_logging_set_options(btck_LoggingOptions options);
|
||||
|
||||
/**
|
||||
* @brief Set the log level of the global internal logger. This does not
|
||||
@@ -835,7 +835,7 @@ BITCOINKERNEL_API void btck_logging_connection_destroy(btck_LoggingConnection* l
|
||||
* @return An allocated chain parameters opaque struct.
|
||||
*/
|
||||
BITCOINKERNEL_API btck_ChainParameters* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chain_parameters_create(
|
||||
const btck_ChainType chain_type);
|
||||
btck_ChainType chain_type);
|
||||
|
||||
/**
|
||||
* Copy the chain parameters.
|
||||
|
||||
@@ -421,7 +421,7 @@ private:
|
||||
size_t m_bytes_sent GUARDED_BY(m_send_mutex) {0};
|
||||
|
||||
public:
|
||||
explicit V1Transport(const NodeId node_id) noexcept;
|
||||
explicit V1Transport(NodeId node_id) noexcept;
|
||||
|
||||
bool ReceivedMessageComplete() const override EXCLUSIVE_LOCKS_REQUIRED(!m_recv_mutex)
|
||||
{
|
||||
@@ -1294,7 +1294,7 @@ public:
|
||||
* @param[in] network Select only addresses of this network (nullopt = all).
|
||||
* @param[in] filtered Select only addresses that are considered high quality (false = all).
|
||||
*/
|
||||
std::vector<CAddress> GetAddressesUnsafe(size_t max_addresses, size_t max_pct, std::optional<Network> network, const bool filtered = true) const;
|
||||
std::vector<CAddress> GetAddressesUnsafe(size_t max_addresses, size_t max_pct, std::optional<Network> network, bool filtered = true) const;
|
||||
/**
|
||||
* Return addresses from the per-requestor cache. If no cache entry exists, it is populated with
|
||||
* randomly selected addresses. This function can be used in untrusted contexts.
|
||||
|
||||
@@ -552,7 +552,7 @@ public:
|
||||
};
|
||||
void UnitTestMisbehaving(NodeId peer_id) override EXCLUSIVE_LOCKS_REQUIRED(!m_peer_mutex) { Misbehaving(*Assert(GetPeerRef(peer_id)), ""); };
|
||||
void ProcessMessage(CNode& pfrom, const std::string& msg_type, DataStream& vRecv,
|
||||
const std::chrono::microseconds time_received, const std::atomic<bool>& interruptMsgProc) override
|
||||
std::chrono::microseconds time_received, const std::atomic<bool>& interruptMsgProc) override
|
||||
EXCLUSIVE_LOCKS_REQUIRED(!m_peer_mutex, !m_most_recent_block_mutex, !m_headers_presync_mutex, g_msgproc_mutex, !m_tx_download_mutex);
|
||||
void UpdateLastBlockAnnounceTime(NodeId node, int64_t time_in_seconds) override;
|
||||
ServiceFlags GetDesirableServiceFlags(ServiceFlags services) const override;
|
||||
|
||||
@@ -149,7 +149,7 @@ public:
|
||||
|
||||
/** Process a single message from a peer. Public for fuzz testing */
|
||||
virtual void ProcessMessage(CNode& pfrom, const std::string& msg_type, DataStream& vRecv,
|
||||
const std::chrono::microseconds time_received, const std::atomic<bool>& interruptMsgProc) EXCLUSIVE_LOCKS_REQUIRED(g_msgproc_mutex) = 0;
|
||||
std::chrono::microseconds time_received, const std::atomic<bool>& interruptMsgProc) EXCLUSIVE_LOCKS_REQUIRED(g_msgproc_mutex) = 0;
|
||||
|
||||
/** This function is used for testing the stale tip eviction logic, see denialofservice_tests.cpp */
|
||||
virtual void UpdateLastBlockAnnounceTime(NodeId node, int64_t time_in_seconds) = 0;
|
||||
|
||||
@@ -206,7 +206,7 @@ public:
|
||||
std::vector<unsigned char> GetAddrBytes() const;
|
||||
int GetReachabilityFrom(const CNetAddr& paddrPartner) const;
|
||||
|
||||
explicit CNetAddr(const struct in6_addr& pipv6Addr, const uint32_t scope = 0);
|
||||
explicit CNetAddr(const struct in6_addr& pipv6Addr, uint32_t scope = 0);
|
||||
bool GetIn6Addr(struct in6_addr* pipv6Addr) const;
|
||||
|
||||
friend bool operator==(const CNetAddr& a, const CNetAddr& b);
|
||||
|
||||
@@ -60,7 +60,8 @@ class Proxy
|
||||
public:
|
||||
Proxy() : m_is_unix_socket(false), m_tor_stream_isolation(false) {}
|
||||
explicit Proxy(const CService& _proxy, bool tor_stream_isolation = false) : proxy(_proxy), m_is_unix_socket(false), m_tor_stream_isolation(tor_stream_isolation) {}
|
||||
explicit Proxy(const std::string path, bool tor_stream_isolation = false) : m_unix_socket_path(path), m_is_unix_socket(true), m_tor_stream_isolation(tor_stream_isolation) {}
|
||||
explicit Proxy(std::string path, bool tor_stream_isolation = false)
|
||||
: m_unix_socket_path(std::move(path)), m_is_unix_socket(true), m_tor_stream_isolation(tor_stream_isolation) {}
|
||||
|
||||
CService proxy;
|
||||
std::string m_unix_socket_path;
|
||||
|
||||
@@ -370,7 +370,7 @@ public:
|
||||
CBlockIndex* InsertBlockIndex(const uint256& hash) EXCLUSIVE_LOCKS_REQUIRED(cs_main);
|
||||
|
||||
//! Mark one block file as pruned (modify associated database entries)
|
||||
void PruneOneBlockFile(const int fileNumber) EXCLUSIVE_LOCKS_REQUIRED(cs_main);
|
||||
void PruneOneBlockFile(int fileNumber) EXCLUSIVE_LOCKS_REQUIRED(cs_main);
|
||||
|
||||
CBlockIndex* LookupBlockIndex(const uint256& hash) EXCLUSIVE_LOCKS_REQUIRED(cs_main);
|
||||
const CBlockIndex* LookupBlockIndex(const uint256& hash) const EXCLUSIVE_LOCKS_REQUIRED(cs_main);
|
||||
|
||||
@@ -128,7 +128,7 @@ private:
|
||||
* accounts for the BIP94 timewarp rule, so does not necessarily reflect the
|
||||
* consensus limit.
|
||||
*/
|
||||
int64_t GetMinimumTime(const CBlockIndex* pindexPrev, const int64_t difficulty_adjustment_interval);
|
||||
int64_t GetMinimumTime(const CBlockIndex* pindexPrev, int64_t difficulty_adjustment_interval);
|
||||
|
||||
int64_t UpdateTime(CBlockHeader* pblock, const Consensus::Params& consensusParams, const CBlockIndex* pindexPrev);
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ static const CAmount DEFAULT_MAX_BURN_AMOUNT{0};
|
||||
* @param[out] hashBlock The block hash, if the tx was found via -txindex or block_index
|
||||
* @returns The tx if found, otherwise nullptr
|
||||
*/
|
||||
CTransactionRef GetTransaction(const CBlockIndex* const block_index, const CTxMemPool* const mempool, const Txid& hash, const BlockManager& blockman, uint256& hashBlock);
|
||||
CTransactionRef GetTransaction(const CBlockIndex* block_index, const CTxMemPool* mempool, const Txid& hash, const BlockManager& blockman, uint256& hashBlock);
|
||||
} // namespace node
|
||||
|
||||
#endif // BITCOIN_NODE_TRANSACTION_H
|
||||
|
||||
@@ -200,7 +200,7 @@ private:
|
||||
const fs::path m_estimation_filepath;
|
||||
public:
|
||||
/** Create new BlockPolicyEstimator and initialize stats tracking classes with default values */
|
||||
CBlockPolicyEstimator(const fs::path& estimation_filepath, const bool read_stale_estimates);
|
||||
CBlockPolicyEstimator(const fs::path& estimation_filepath, bool read_stale_estimates);
|
||||
virtual ~CBlockPolicyEstimator();
|
||||
|
||||
/** Process all the transactions that have been included in a block */
|
||||
|
||||
@@ -24,7 +24,7 @@ class arith_uint256;
|
||||
* @return the proof-of-work target or nullopt if the nBits value
|
||||
* is invalid (due to overflow or exceeding pow_limit)
|
||||
*/
|
||||
std::optional<arith_uint256> DeriveTarget(unsigned int nBits, const uint256 pow_limit);
|
||||
std::optional<arith_uint256> DeriveTarget(unsigned int nBits, uint256 pow_limit);
|
||||
|
||||
unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock, const Consensus::Params&);
|
||||
unsigned int CalculateNextWorkRequired(const CBlockIndex* pindexLast, int64_t nFirstBlockTime, const Consensus::Params&);
|
||||
|
||||
@@ -322,7 +322,7 @@ bool PSBTInputSigned(const PSBTInput& input)
|
||||
return !input.final_script_sig.empty() || !input.final_script_witness.IsNull();
|
||||
}
|
||||
|
||||
bool PSBTInputSignedAndVerified(const PartiallySignedTransaction psbt, unsigned int input_index, const PrecomputedTransactionData* txdata)
|
||||
bool PSBTInputSignedAndVerified(const PartiallySignedTransaction& psbt, unsigned int input_index, const PrecomputedTransactionData* txdata)
|
||||
{
|
||||
CTxOut utxo;
|
||||
assert(input_index < psbt.inputs.size());
|
||||
|
||||
@@ -1413,7 +1413,7 @@ PrecomputedTransactionData PrecomputePSBTData(const PartiallySignedTransaction&
|
||||
bool PSBTInputSigned(const PSBTInput& input);
|
||||
|
||||
/** Checks whether a PSBTInput is already signed by doing script verification using final fields. */
|
||||
bool PSBTInputSignedAndVerified(const PartiallySignedTransaction psbt, unsigned int input_index, const PrecomputedTransactionData* txdata);
|
||||
bool PSBTInputSignedAndVerified(const PartiallySignedTransaction& psbt, unsigned int input_index, const PrecomputedTransactionData* txdata);
|
||||
|
||||
/** Signs a PSBTInput, verifying that all provided data matches what is being signed.
|
||||
*
|
||||
|
||||
@@ -70,7 +70,7 @@ public:
|
||||
/* Add an address to the model.
|
||||
Returns the added address on success, and an empty string otherwise.
|
||||
*/
|
||||
QString addRow(const QString &type, const QString &label, const QString &address, const OutputType address_type);
|
||||
QString addRow(const QString& type, const QString& label, const QString& address, OutputType address_type);
|
||||
|
||||
/** Look up label for address in address book, if not found return empty string. */
|
||||
QString labelForAddress(const QString &address) const;
|
||||
|
||||
@@ -16,7 +16,7 @@ class NetworkStyle
|
||||
{
|
||||
public:
|
||||
/** Get style associated with provided network id, or 0 if not known */
|
||||
static const NetworkStyle* instantiate(const ChainType networkId);
|
||||
static const NetworkStyle* instantiate(ChainType networkId);
|
||||
|
||||
const QString &getAppName() const { return appName; }
|
||||
const QIcon &getAppIcon() const { return appIcon; }
|
||||
@@ -24,7 +24,7 @@ public:
|
||||
const QString &getTitleAddText() const { return titleAddText; }
|
||||
|
||||
private:
|
||||
NetworkStyle(const QString &appName, const int iconColorHueShift, const int iconColorSaturationReduction, const char *titleAddText);
|
||||
NetworkStyle(const QString& appName, int iconColorHueShift, int iconColorSaturationReduction, const char* titleAddText);
|
||||
|
||||
QString appName;
|
||||
QIcon appIcon;
|
||||
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
explicit RPCConsole(interfaces::Node& node, const PlatformStyle *platformStyle, QWidget *parent);
|
||||
~RPCConsole();
|
||||
|
||||
static bool RPCParseCommandLine(interfaces::Node* node, std::string &strResult, const std::string &strCommand, bool fExecute, std::string * const pstrFilteredOut = nullptr, const QString& wallet_name = {});
|
||||
static bool RPCParseCommandLine(interfaces::Node* node, std::string& strResult, const std::string& strCommand, bool fExecute, std::string* pstrFilteredOut = nullptr, const QString& wallet_name = {});
|
||||
static bool RPCExecuteCommandLine(interfaces::Node& node, std::string &strResult, const std::string &strCommand, std::string * const pstrFilteredOut = nullptr, const QString& wallet_name = {}) {
|
||||
return RPCParseCommandLine(&node, strResult, strCommand, true, pstrFilteredOut, wallet_name);
|
||||
}
|
||||
@@ -56,8 +56,8 @@ public:
|
||||
void setClientModel(ClientModel *model = nullptr, int bestblock_height = 0, int64_t bestblock_date = 0, double verification_progress = 0.0);
|
||||
|
||||
#ifdef ENABLE_WALLET
|
||||
void addWallet(WalletModel* const walletModel);
|
||||
void removeWallet(WalletModel* const walletModel);
|
||||
void addWallet(WalletModel* walletModel);
|
||||
void removeWallet(WalletModel* walletModel);
|
||||
#endif // ENABLE_WALLET
|
||||
|
||||
enum MessageClass {
|
||||
@@ -138,7 +138,7 @@ public Q_SLOTS:
|
||||
void setTabFocus(enum TabTypes tabType);
|
||||
#ifdef ENABLE_WALLET
|
||||
/** Set the current (ie - active) wallet */
|
||||
void setCurrentWallet(WalletModel* const wallet_model);
|
||||
void setCurrentWallet(WalletModel* wallet_model);
|
||||
#endif // ENABLE_WALLET
|
||||
|
||||
private:
|
||||
|
||||
@@ -95,7 +95,7 @@ void RandAddPeriodic() noexcept;
|
||||
*
|
||||
* Thread-safe.
|
||||
*/
|
||||
void RandAddEvent(const uint32_t event_info) noexcept;
|
||||
void RandAddEvent(uint32_t event_info) noexcept;
|
||||
|
||||
|
||||
/* =========================== BASE RANDOMNESS GENERATION FUNCTIONS ===========================
|
||||
|
||||
@@ -36,10 +36,10 @@ static constexpr int NUM_GETBLOCKSTATS_PERCENTILES = 5;
|
||||
double GetDifficulty(const CBlockIndex& blockindex);
|
||||
|
||||
/** Block description to JSON */
|
||||
UniValue blockToJSON(node::BlockManager& blockman, const CBlock& block, const CBlockIndex& tip, const CBlockIndex& blockindex, TxVerbosity verbosity, const uint256 pow_limit) LOCKS_EXCLUDED(cs_main);
|
||||
UniValue blockToJSON(node::BlockManager& blockman, const CBlock& block, const CBlockIndex& tip, const CBlockIndex& blockindex, TxVerbosity verbosity, uint256 pow_limit) LOCKS_EXCLUDED(cs_main);
|
||||
|
||||
/** Block header to JSON */
|
||||
UniValue blockheaderToJSON(const CBlockIndex& tip, const CBlockIndex& blockindex, const uint256 pow_limit) LOCKS_EXCLUDED(cs_main);
|
||||
UniValue blockheaderToJSON(const CBlockIndex& tip, const CBlockIndex& blockindex, uint256 pow_limit) LOCKS_EXCLUDED(cs_main);
|
||||
|
||||
/** Used by getblockstats to get feerates at different percentiles by weight */
|
||||
void CalculatePercentilesByWeight(CAmount result[NUM_GETBLOCKSTATS_PERCENTILES], std::vector<std::pair<CAmount, int64_t>>& scores, int64_t total_weight);
|
||||
|
||||
@@ -54,7 +54,7 @@ std::vector<std::pair<CTxDestination, CAmount>> ParseOutputs(const UniValue& out
|
||||
void AddOutputs(CMutableTransaction& rawTx, const UniValue& outputs_in);
|
||||
|
||||
/** Create a transaction from univalue parameters */
|
||||
CMutableTransaction ConstructTransaction(const UniValue& inputs_in, const UniValue& outputs_in, const UniValue& locktime, std::optional<bool> rbf, const uint32_t version);
|
||||
CMutableTransaction ConstructTransaction(const UniValue& inputs_in, const UniValue& outputs_in, const UniValue& locktime, std::optional<bool> rbf, uint32_t version);
|
||||
|
||||
/** Explain the UniValue "decoded" transaction object, may include extra fields if processed by wallet **/
|
||||
std::vector<RPCResult> DecodeTxDoc(const std::string& txid_field_doc, bool wallet);
|
||||
|
||||
@@ -136,7 +136,7 @@ std::string HelpExampleRpc(const std::string& methodname, const std::string& arg
|
||||
std::string HelpExampleRpcNamed(const std::string& methodname, const RPCArgList& args);
|
||||
|
||||
CPubKey HexToPubKey(const std::string& hex_in);
|
||||
CTxDestination AddAndGetMultisigDestination(const int required, const std::vector<CPubKey>& pubkeys, OutputType type, FlatSigningProvider& keystore, CScript& script_out);
|
||||
CTxDestination AddAndGetMultisigDestination(int required, const std::vector<CPubKey>& pubkeys, OutputType type, FlatSigningProvider& keystore, CScript& script_out);
|
||||
|
||||
UniValue DescribeAddress(const CTxDestination& dest);
|
||||
|
||||
@@ -154,7 +154,7 @@ UniValue JSONRPCTransactionError(node::TransactionError terr, const std::string&
|
||||
std::pair<int64_t, int64_t> ParseDescriptorRange(const UniValue& value);
|
||||
|
||||
/** Evaluate a descriptor given as a string, or as a {"desc":...,"range":...} object, with default range of 1000. */
|
||||
std::vector<CScript> EvalDescriptorStringOrObject(const UniValue& scanobject, FlatSigningProvider& provider, const bool expand_priv = false);
|
||||
std::vector<CScript> EvalDescriptorStringOrObject(const UniValue& scanobject, FlatSigningProvider& provider, bool expand_priv = false);
|
||||
|
||||
/**
|
||||
* Serializing JSON objects depends on the outer type. Only arrays and
|
||||
@@ -372,7 +372,7 @@ struct RPCResult {
|
||||
: RPCResult{type, std::move(m_key_name), /*optional=*/false, std::move(description), std::move(inner), skip_type_check} {}
|
||||
|
||||
/** Append the sections of the result. */
|
||||
void ToSections(Sections& sections, OuterType outer_type = OuterType::NONE, const int current_indent = 0) const;
|
||||
void ToSections(Sections& sections, OuterType outer_type = OuterType::NONE, int current_indent = 0) const;
|
||||
/** Return the type string of the result when it is in an object (dict). */
|
||||
std::string ToStringObj() const;
|
||||
/** Return the description string, including the result type. */
|
||||
@@ -527,6 +527,6 @@ std::vector<RPCResult> ScriptPubKeyDoc();
|
||||
*
|
||||
* @return the target
|
||||
*/
|
||||
uint256 GetTarget(const CBlockIndex& blockindex, const uint256 pow_limit);
|
||||
uint256 GetTarget(const CBlockIndex& blockindex, uint256 pow_limit);
|
||||
|
||||
#endif // BITCOIN_RPC_UTIL_H
|
||||
|
||||
@@ -1761,7 +1761,7 @@ enum class ParseContext {
|
||||
CLOSE_BRACKET,
|
||||
};
|
||||
|
||||
int FindNextChar(std::span<const char> in, const char m);
|
||||
int FindNextChar(std::span<const char> in, char m);
|
||||
|
||||
/** Parse a key string ending at the end of the fragment's text representation. */
|
||||
template<typename Key, typename Ctx>
|
||||
|
||||
@@ -88,6 +88,6 @@ typedef enum ScriptError_t
|
||||
|
||||
#define SCRIPT_ERR_LAST SCRIPT_ERR_ERROR_COUNT
|
||||
|
||||
std::string ScriptErrorString(const ScriptError error);
|
||||
std::string ScriptErrorString(ScriptError error);
|
||||
|
||||
#endif // BITCOIN_SCRIPT_SCRIPT_ERROR_H
|
||||
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
|
||||
void ComputeEntrySchnorr(uint256& entry, const uint256 &hash, std::span<const unsigned char> sig, const XOnlyPubKey& pubkey) const;
|
||||
|
||||
bool Get(const uint256& entry, const bool erase);
|
||||
bool Get(const uint256& entry, bool erase);
|
||||
|
||||
void Set(const uint256& entry);
|
||||
};
|
||||
|
||||
@@ -52,7 +52,7 @@ BOOST_AUTO_TEST_CASE(util_datadir)
|
||||
struct TestArgsManager : public ArgsManager
|
||||
{
|
||||
TestArgsManager() { m_network_only_args.clear(); }
|
||||
void ReadConfigString(const std::string str_config)
|
||||
void ReadConfigString(const std::string& str_config)
|
||||
{
|
||||
std::istringstream streamConfig(str_config);
|
||||
{
|
||||
@@ -63,7 +63,7 @@ struct TestArgsManager : public ArgsManager
|
||||
std::string error;
|
||||
BOOST_REQUIRE(ReadConfigStream(streamConfig, "", error));
|
||||
}
|
||||
void SetNetworkOnlyArg(const std::string arg)
|
||||
void SetNetworkOnlyArg(const std::string& arg)
|
||||
{
|
||||
LOCK(cs_args);
|
||||
m_network_only_args.insert(arg);
|
||||
|
||||
@@ -146,11 +146,11 @@ template <typename WeakEnumType, size_t size>
|
||||
|
||||
[[nodiscard]] int64_t ConsumeTime(FuzzedDataProvider& fuzzed_data_provider, const std::optional<int64_t>& min = std::nullopt, const std::optional<int64_t>& max = std::nullopt) noexcept;
|
||||
|
||||
[[nodiscard]] CMutableTransaction ConsumeTransaction(FuzzedDataProvider& fuzzed_data_provider, const std::optional<std::vector<Txid>>& prevout_txids, const int max_num_in = 10, const int max_num_out = 10) noexcept;
|
||||
[[nodiscard]] CMutableTransaction ConsumeTransaction(FuzzedDataProvider& fuzzed_data_provider, const std::optional<std::vector<Txid>>& prevout_txids, int max_num_in = 10, int max_num_out = 10) noexcept;
|
||||
|
||||
[[nodiscard]] CScriptWitness ConsumeScriptWitness(FuzzedDataProvider& fuzzed_data_provider, const size_t max_stack_elem_size = 32) noexcept;
|
||||
[[nodiscard]] CScriptWitness ConsumeScriptWitness(FuzzedDataProvider& fuzzed_data_provider, size_t max_stack_elem_size = 32) noexcept;
|
||||
|
||||
[[nodiscard]] CScript ConsumeScript(FuzzedDataProvider& fuzzed_data_provider, const bool maybe_p2wsh = false) noexcept;
|
||||
[[nodiscard]] CScript ConsumeScript(FuzzedDataProvider& fuzzed_data_provider, bool maybe_p2wsh = false) noexcept;
|
||||
|
||||
[[nodiscard]] uint32_t ConsumeSequence(FuzzedDataProvider& fuzzed_data_provider) noexcept;
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ struct BasicTestingSetup {
|
||||
m_rng.Reseed(GetRandHash());
|
||||
}
|
||||
|
||||
explicit BasicTestingSetup(const ChainType chainType = ChainType::MAIN, TestOpts = {});
|
||||
explicit BasicTestingSetup(ChainType chainType = ChainType::MAIN, TestOpts = {});
|
||||
~BasicTestingSetup();
|
||||
|
||||
fs::path m_path_root;
|
||||
@@ -109,7 +109,7 @@ struct ChainTestingSetup : public BasicTestingSetup {
|
||||
bool m_block_tree_db_in_memory{true};
|
||||
std::function<void()> m_make_chainman{};
|
||||
|
||||
explicit ChainTestingSetup(const ChainType chainType = ChainType::MAIN, TestOpts = {});
|
||||
explicit ChainTestingSetup(ChainType chainType = ChainType::MAIN, TestOpts = {});
|
||||
~ChainTestingSetup();
|
||||
|
||||
// Supplies a chainstate, if one is needed
|
||||
@@ -120,7 +120,7 @@ struct ChainTestingSetup : public BasicTestingSetup {
|
||||
*/
|
||||
struct TestingSetup : public ChainTestingSetup {
|
||||
explicit TestingSetup(
|
||||
const ChainType chainType = ChainType::MAIN,
|
||||
ChainType chainType = ChainType::MAIN,
|
||||
TestOpts = {});
|
||||
};
|
||||
|
||||
@@ -145,7 +145,7 @@ class CScript;
|
||||
*/
|
||||
struct TestChain100Setup : public TestingSetup {
|
||||
TestChain100Setup(
|
||||
const ChainType chain_type = ChainType::REGTEST,
|
||||
ChainType chain_type = ChainType::REGTEST,
|
||||
TestOpts = {});
|
||||
|
||||
/**
|
||||
|
||||
@@ -28,7 +28,7 @@ struct MinerTestingSetup : public RegTestingSetup {
|
||||
std::shared_ptr<const CBlock> GoodBlock(const uint256& prev_hash);
|
||||
std::shared_ptr<const CBlock> BadBlock(const uint256& prev_hash);
|
||||
std::shared_ptr<CBlock> FinalizeBlock(std::shared_ptr<CBlock> pblock);
|
||||
void BuildChain(const uint256& root, int height, const unsigned int invalid_rate, const unsigned int branch_rate, const unsigned int max_size, std::vector<std::shared_ptr<const CBlock>>& blocks);
|
||||
void BuildChain(const uint256& root, int height, unsigned int invalid_rate, unsigned int branch_rate, unsigned int max_size, std::vector<std::shared_ptr<const CBlock>>& blocks);
|
||||
};
|
||||
} // namespace validation_block_tests
|
||||
|
||||
|
||||
@@ -553,7 +553,7 @@ public:
|
||||
bool CheckPolicyLimits(const CTransactionRef& tx);
|
||||
|
||||
/** Removes a transaction from the unbroadcast set */
|
||||
void RemoveUnbroadcastTx(const Txid& txid, const bool unchecked = false);
|
||||
void RemoveUnbroadcastTx(const Txid& txid, bool unchecked = false);
|
||||
|
||||
/** Returns transactions in unbroadcast set */
|
||||
std::set<Txid> GetUnbroadcastTxs() const
|
||||
@@ -662,7 +662,7 @@ public:
|
||||
|
||||
using TxHandle = CTxMemPool::txiter;
|
||||
|
||||
TxHandle StageAddition(const CTransactionRef& tx, const CAmount fee, int64_t time, unsigned int entry_height, uint64_t entry_sequence, bool spends_coinbase, int64_t sigops_cost, LockPoints lp);
|
||||
TxHandle StageAddition(const CTransactionRef& tx, CAmount fee, int64_t time, unsigned int entry_height, uint64_t entry_sequence, bool spends_coinbase, int64_t sigops_cost, LockPoints lp);
|
||||
|
||||
void StageRemoval(CTxMemPool::txiter it);
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/* Do not use these functions to represent or parse monetary amounts to or from
|
||||
* JSON but use AmountFromValue and ValueFromAmount for that.
|
||||
*/
|
||||
std::string FormatMoney(const CAmount n);
|
||||
std::string FormatMoney(CAmount n);
|
||||
/** Parse an amount denoted in full coins. E.g. "0.0034" supplied on the command line. **/
|
||||
std::optional<CAmount> ParseMoney(const std::string& str);
|
||||
|
||||
|
||||
@@ -306,7 +306,7 @@ typedef std::map<CoinEligibilityFilter, OutputGroupTypeMap> FilteredOutputGroups
|
||||
* @param[in] payment_value Average payment value of the transaction output(s).
|
||||
* @param[in] change_fee Fee for creating a change output.
|
||||
*/
|
||||
[[nodiscard]] CAmount GenerateChangeTarget(const CAmount payment_value, const CAmount change_fee, FastRandomContext& rng);
|
||||
[[nodiscard]] CAmount GenerateChangeTarget(CAmount payment_value, CAmount change_fee, FastRandomContext& rng);
|
||||
|
||||
enum class SelectionAlgorithm : uint8_t
|
||||
{
|
||||
@@ -317,7 +317,7 @@ enum class SelectionAlgorithm : uint8_t
|
||||
MANUAL = 4,
|
||||
};
|
||||
|
||||
std::string GetAlgorithmName(const SelectionAlgorithm algo);
|
||||
std::string GetAlgorithmName(SelectionAlgorithm algo);
|
||||
|
||||
struct SelectionResult
|
||||
{
|
||||
@@ -371,7 +371,7 @@ public:
|
||||
void AddInputs(const std::set<std::shared_ptr<COutput>>& inputs, bool subtract_fee_outputs);
|
||||
|
||||
/** How much individual inputs overestimated the bump fees for shared ancestries */
|
||||
void SetBumpFeeDiscount(const CAmount discount);
|
||||
void SetBumpFeeDiscount(CAmount discount);
|
||||
|
||||
/** Calculates and stores the waste for this result given the cost of change
|
||||
* and the opportunity cost of spending these inputs now vs in the future.
|
||||
@@ -385,7 +385,7 @@ public:
|
||||
* used if there is change, in which case it must be non-negative.
|
||||
* @param[in] change_fee The fee for creating a change output
|
||||
*/
|
||||
void RecalculateWaste(const CAmount min_viable_change, const CAmount change_cost, const CAmount change_fee);
|
||||
void RecalculateWaste(CAmount min_viable_change, CAmount change_cost, CAmount change_fee);
|
||||
[[nodiscard]] CAmount GetWaste() const;
|
||||
|
||||
/** Tracks that algorithm was able to exhaustively search the entire combination space before hitting limit of tries */
|
||||
@@ -432,7 +432,7 @@ public:
|
||||
* @returns Amount for change output, 0 when there is no change.
|
||||
*
|
||||
*/
|
||||
CAmount GetChange(const CAmount min_viable_change, const CAmount change_fee) const;
|
||||
CAmount GetChange(CAmount min_viable_change, CAmount change_fee) const;
|
||||
|
||||
CAmount GetTarget() const { return m_target; }
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ private:
|
||||
int BytesToKeySHA512AES(std::span<const unsigned char> salt, const SecureString& key_data, int count, unsigned char* key, unsigned char* iv) const;
|
||||
|
||||
public:
|
||||
bool SetKeyFromPassphrase(const SecureString& key_data, std::span<const unsigned char> salt, const unsigned int rounds, const unsigned int derivation_method);
|
||||
bool SetKeyFromPassphrase(const SecureString& key_data, std::span<const unsigned char> salt, unsigned int rounds, unsigned int derivation_method);
|
||||
bool Encrypt(const CKeyingMaterial& vchPlaintext, std::vector<unsigned char> &vchCiphertext) const;
|
||||
bool Decrypt(std::span<const unsigned char> ciphertext, CKeyingMaterial& plaintext) const;
|
||||
bool SetKey(const CKeyingMaterial& new_key, std::span<const unsigned char> new_iv);
|
||||
|
||||
@@ -124,7 +124,7 @@ void PushParentDescriptors(const CWallet& wallet, const CScript& script_pubkey,
|
||||
entry.pushKV("parent_descs", std::move(parent_descs));
|
||||
}
|
||||
|
||||
void HandleWalletError(const std::shared_ptr<CWallet> wallet, DatabaseStatus& status, bilingual_str& error)
|
||||
void HandleWalletError(const std::shared_ptr<CWallet>& wallet, DatabaseStatus& status, bilingual_str& error)
|
||||
{
|
||||
if (!wallet) {
|
||||
// Map bad format to not found, since bad format is returned when the
|
||||
|
||||
@@ -54,7 +54,7 @@ std::string LabelFromValue(const UniValue& value);
|
||||
//! Fetch parent descriptors of this scriptPubKey.
|
||||
void PushParentDescriptors(const CWallet& wallet, const CScript& script_pubkey, UniValue& entry);
|
||||
|
||||
void HandleWalletError(const std::shared_ptr<CWallet> wallet, DatabaseStatus& status, bilingual_str& error);
|
||||
void HandleWalletError(const std::shared_ptr<CWallet>& wallet, DatabaseStatus& status, bilingual_str& error);
|
||||
void AppendLastProcessedBlock(UniValue& entry, const CWallet& wallet) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet);
|
||||
} // namespace wallet
|
||||
|
||||
|
||||
@@ -337,13 +337,13 @@ public:
|
||||
|
||||
mutable RecursiveMutex cs_desc_man;
|
||||
|
||||
util::Result<CTxDestination> GetNewDestination(const OutputType type) override;
|
||||
util::Result<CTxDestination> GetNewDestination(OutputType type) override;
|
||||
bool IsMine(const CScript& script) const override;
|
||||
|
||||
bool CheckDecryptionKey(const CKeyingMaterial& master_key) override;
|
||||
bool Encrypt(const CKeyingMaterial& master_key, WalletBatch* batch) override;
|
||||
|
||||
util::Result<CTxDestination> GetReservedDestination(const OutputType type, bool internal, int64_t& index) override;
|
||||
util::Result<CTxDestination> GetReservedDestination(OutputType type, bool internal, int64_t& index) override;
|
||||
void ReturnDestination(int64_t index, bool internal, const CTxDestination& addr) override;
|
||||
|
||||
// Tops up the descriptor cache and m_map_script_pub_keys. The cache is stored in the wallet file
|
||||
@@ -402,7 +402,7 @@ public:
|
||||
std::unordered_set<CScript, SaltedSipHasher> GetScriptPubKeys(int32_t minimum_index) const;
|
||||
int32_t GetEndRange() const;
|
||||
|
||||
[[nodiscard]] bool GetDescriptorString(std::string& out, const bool priv) const;
|
||||
[[nodiscard]] bool GetDescriptorString(std::string& out, bool priv) const;
|
||||
|
||||
void UpgradeDescriptorCache();
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace wallet {
|
||||
/** Get the marginal bytes if spending the specified output from this transaction.
|
||||
* Use CoinControl to determine whether to expect signature grinding when calculating the size of the input spend. */
|
||||
int CalculateMaximumSignedInputSize(const CTxOut& txout, const CWallet* pwallet, const CCoinControl* coin_control);
|
||||
int CalculateMaximumSignedInputSize(const CTxOut& txout, const COutPoint outpoint, const SigningProvider* pwallet, bool can_grind_r, const CCoinControl* coin_control);
|
||||
int CalculateMaximumSignedInputSize(const CTxOut& txout, COutPoint outpoint, const SigningProvider* pwallet, bool can_grind_r, const CCoinControl* coin_control);
|
||||
struct TxSize {
|
||||
int64_t vsize{-1};
|
||||
int64_t weight{-1};
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
namespace wallet {
|
||||
struct InitWalletDirTestingSetup: public BasicTestingSetup {
|
||||
explicit InitWalletDirTestingSetup(const ChainType chain_type = ChainType::MAIN);
|
||||
explicit InitWalletDirTestingSetup(ChainType chain_type = ChainType::MAIN);
|
||||
~InitWalletDirTestingSetup();
|
||||
void SetWalletDir(const fs::path& walletdir_path);
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ public:
|
||||
std::unique_ptr<WalletDatabase> CreateMockableWalletDatabase(MockableData records = {});
|
||||
MockableDatabase& GetMockableDatabase(CWallet& wallet);
|
||||
|
||||
DescriptorScriptPubKeyMan* CreateDescriptor(CWallet& keystore, const std::string& desc_str, const bool success);
|
||||
DescriptorScriptPubKeyMan* CreateDescriptor(CWallet& keystore, const std::string& desc_str, bool success);
|
||||
} // namespace wallet
|
||||
|
||||
#endif // BITCOIN_WALLET_TEST_UTIL_H
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace wallet {
|
||||
/** Testing setup and teardown for wallet.
|
||||
*/
|
||||
struct WalletTestingSetup : public TestingSetup {
|
||||
explicit WalletTestingSetup(const ChainType chainType = ChainType::MAIN);
|
||||
explicit WalletTestingSetup(ChainType chainType = ChainType::MAIN);
|
||||
~WalletTestingSetup();
|
||||
|
||||
std::unique_ptr<interfaces::WalletLoader> m_wallet_loader;
|
||||
|
||||
@@ -2534,7 +2534,7 @@ bool CWallet::TopUpKeyPool(unsigned int kpSize)
|
||||
return res;
|
||||
}
|
||||
|
||||
util::Result<CTxDestination> CWallet::GetNewDestination(const OutputType type, const std::string label)
|
||||
util::Result<CTxDestination> CWallet::GetNewDestination(const OutputType type, const std::string& label)
|
||||
{
|
||||
LOCK(cs_wallet);
|
||||
auto spk_man = GetScriptPubKeyMan(type, /*internal=*/false);
|
||||
|
||||
@@ -444,7 +444,7 @@ private:
|
||||
* block locator and m_last_block_processed, and registering for
|
||||
* notifications about new blocks and transactions.
|
||||
*/
|
||||
static bool AttachChain(const std::shared_ptr<CWallet>& wallet, interfaces::Chain& chain, const bool rescan_required, bilingual_str& error, std::vector<bilingual_str>& warnings);
|
||||
static bool AttachChain(const std::shared_ptr<CWallet>& wallet, interfaces::Chain& chain, bool rescan_required, bilingual_str& error, std::vector<bilingual_str>& warnings);
|
||||
|
||||
static NodeClock::time_point GetDefaultNextResend();
|
||||
|
||||
@@ -648,7 +648,7 @@ public:
|
||||
//! USER_ABORT.
|
||||
uint256 last_failed_block;
|
||||
};
|
||||
ScanResult ScanForWalletTransactions(const uint256& start_block, int start_height, std::optional<int> max_height, const WalletRescanReserver& reserver, bool fUpdate, const bool save_progress);
|
||||
ScanResult ScanForWalletTransactions(const uint256& start_block, int start_height, std::optional<int> max_height, const WalletRescanReserver& reserver, bool fUpdate, bool save_progress);
|
||||
void transactionRemovedFromMempool(const CTransactionRef& tx, MemPoolRemovalReason reason) override;
|
||||
/** Set the next time this wallet should resend transactions to 12-36 hours from now, ~1 day on average. */
|
||||
void SetNextResend() { m_next_resend = GetDefaultNextResend(); }
|
||||
@@ -768,7 +768,7 @@ public:
|
||||
/**
|
||||
* Retrieve all the known labels in the address book
|
||||
*/
|
||||
std::set<std::string> ListAddrBookLabels(const std::optional<AddressPurpose> purpose) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
|
||||
std::set<std::string> ListAddrBookLabels(std::optional<AddressPurpose> purpose) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
|
||||
|
||||
/**
|
||||
* Walk-through the address book entries.
|
||||
@@ -783,8 +783,8 @@ public:
|
||||
*/
|
||||
void MarkDestinationsDirty(const std::set<CTxDestination>& destinations) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
|
||||
|
||||
util::Result<CTxDestination> GetNewDestination(const OutputType type, const std::string label);
|
||||
util::Result<CTxDestination> GetNewChangeDestination(const OutputType type);
|
||||
util::Result<CTxDestination> GetNewDestination(OutputType type, const std::string& label);
|
||||
util::Result<CTxDestination> GetNewChangeDestination(OutputType type);
|
||||
|
||||
bool IsMine(const CTxDestination& dest) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
|
||||
bool IsMine(const CScript& script) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
|
||||
|
||||
@@ -227,7 +227,7 @@ public:
|
||||
bool WriteTx(const CWalletTx& wtx);
|
||||
bool EraseTx(Txid hash);
|
||||
|
||||
bool WriteKeyMetadata(const CKeyMetadata& meta, const CPubKey& pubkey, const bool overwrite);
|
||||
bool WriteKeyMetadata(const CKeyMetadata& meta, const CPubKey& pubkey, bool overwrite);
|
||||
bool WriteKey(const CPubKey& vchPubKey, const CPrivKey& vchPrivKey, const CKeyMetadata &keyMeta);
|
||||
bool WriteCryptedKey(const CPubKey& vchPubKey, const std::vector<unsigned char>& vchCryptedSecret, const CKeyMetadata &keyMeta);
|
||||
bool WriteMasterKey(unsigned int nID, const CMasterKey& kMasterKey);
|
||||
@@ -268,7 +268,7 @@ public:
|
||||
//! Delete records of the given types
|
||||
bool EraseRecords(const std::unordered_set<std::string>& types);
|
||||
|
||||
bool WriteWalletFlags(const uint64_t flags);
|
||||
bool WriteWalletFlags(uint64_t flags);
|
||||
//! Begin a new transaction
|
||||
bool TxnBegin();
|
||||
//! Commit current transaction
|
||||
|
||||
Reference in New Issue
Block a user