mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-15 14:22:37 -03:00
46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
// Copyright (c) 2017-2021 The Bitcoin Core developers
|
|
// Distributed under the MIT software license, see the accompanying
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
#include <wallet/walletutil.h>
|
|
|
|
#include <logging.h>
|
|
#include <util/system.h>
|
|
|
|
namespace wallet {
|
|
fs::path GetWalletDir()
|
|
{
|
|
fs::path path;
|
|
|
|
if (gArgs.IsArgSet("-walletdir")) {
|
|
path = gArgs.GetPathArg("-walletdir");
|
|
if (!fs::is_directory(path)) {
|
|
// If the path specified doesn't exist, we return the deliberately
|
|
// invalid empty string.
|
|
path = "";
|
|
}
|
|
} else {
|
|
path = gArgs.GetDataDirNet();
|
|
// If a wallets directory exists, use that, otherwise default to GetDataDir
|
|
if (fs::is_directory(path / "wallets")) {
|
|
path /= "wallets";
|
|
}
|
|
}
|
|
|
|
return path;
|
|
}
|
|
|
|
bool IsFeatureSupported(int wallet_version, int feature_version)
|
|
{
|
|
return wallet_version >= feature_version;
|
|
}
|
|
|
|
WalletFeature GetClosestWalletFeature(int version)
|
|
{
|
|
static constexpr std::array wallet_features{FEATURE_LATEST, FEATURE_PRE_SPLIT_KEYPOOL, FEATURE_NO_DEFAULT_KEY, FEATURE_HD_SPLIT, FEATURE_HD, FEATURE_COMPRPUBKEY, FEATURE_WALLETCRYPT, FEATURE_BASE};
|
|
for (const WalletFeature& wf : wallet_features) {
|
|
if (version >= wf) return wf;
|
|
}
|
|
return static_cast<WalletFeature>(0);
|
|
}
|
|
} // namespace wallet
|