The new `getrpcinfo` shows a list of the active commands and the duration each command has been running. This sounds like a good place to report a completion percentage for any command doing a blockchain rescan, to solve [this problem](https://bitcoin.stackexchange.com/q/83236/90721).
class COutput;
class CReserveKey;
class CScript;
class CWalletTx;
struct FeeCalculation;
enum class FeeEstimateMode;
enum WalletFeature
{
    FEATURE_BASE = 10500, 
    FEATURE_WALLETCRYPT = 40000, 
    FEATURE_COMPRPUBKEY = 60000, 
    FEATURE_HD = 130000, 
    FEATURE_HD_SPLIT = 139900, 
    FEATURE_NO_DEFAULT_KEY = 159900, 
    FEATURE_PRE_SPLIT_KEYPOOL = 169900, 
    FEATURE_LATEST = FEATURE_PRE_SPLIT_KEYPOOL
};
constexpr OutputType DEFAULT_ADDRESS_TYPE{OutputType::P2SH_SEGWIT};
constexpr OutputType DEFAULT_CHANGE_TYPE{OutputType::CHANGE_AUTO};
enum WalletFlags : uint64_t {