Branch data Line data Source code
# 1 : : // Copyright (c) 2017-2021 The Bitcoin Core developers # 2 : : // Distributed under the MIT software license, see the accompanying # 3 : : // file COPYING or http://www.opensource.org/licenses/mit-license.php. # 4 : : # 5 : : #include <wallet/walletutil.h> # 6 : : # 7 : : #include <logging.h> # 8 : : #include <util/system.h> # 9 : : # 10 : : namespace wallet { # 11 : : fs::path GetWalletDir() # 12 : 2568 : { # 13 : 2568 : fs::path path; # 14 : : # 15 [ + + ]: 2568 : if (gArgs.IsArgSet("-walletdir")) { # 16 : 30 : path = gArgs.GetPathArg("-walletdir"); # 17 [ - + ]: 30 : if (!fs::is_directory(path)) { # 18 : : // If the path specified doesn't exist, we return the deliberately # 19 : : // invalid empty string. # 20 : 0 : path = ""; # 21 : 0 : } # 22 : 2538 : } else { # 23 : 2538 : path = gArgs.GetDataDirNet(); # 24 : : // If a wallets directory exists, use that, otherwise default to GetDataDir # 25 [ + + ]: 2538 : if (fs::is_directory(path / "wallets")) { # 26 : 1696 : path /= "wallets"; # 27 : 1696 : } # 28 : 2538 : } # 29 : : # 30 : 2568 : return path; # 31 : 2568 : } # 32 : : # 33 : : bool IsFeatureSupported(int wallet_version, int feature_version) # 34 : 76937 : { # 35 : 76937 : return wallet_version >= feature_version; # 36 : 76937 : } # 37 : : # 38 : : WalletFeature GetClosestWalletFeature(int version) # 39 : 0 : { # 40 : 0 : 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}; # 41 [ # # ]: 0 : for (const WalletFeature& wf : wallet_features) { # 42 [ # # ]: 0 : if (version >= wf) return wf; # 43 : 0 : } # 44 : 0 : return static_cast<WalletFeature>(0); # 45 : 0 : } # 46 : : } // namespace wallet