https://travis-ci.org/github/MarcoFalke/btc_nightly/jobs/680655419#L412
bool SetAddressBookWithDB(WalletBatch& batch, const CTxDestination& address, const std::string& strName, const std::string& strPurpose);
    
    void UnsetWalletFlagWithDB(WalletBatch& batch, uint64_t flag);
    
    void UnsetBlankWalletFlag(WalletBatch& batch) override;
    
    interfaces::Chain* m_chain;
    
    WalletLocation m_location;
    
    std::unique_ptr<WalletDatabase> database;
    /**
     * The following is used to keep track of how far behind the wallet is
     * from the chain sync, and to allow clients to block on us being caught up.
     *
     * Processed hash is a pointer on node's tip and doesn't imply that the wallet
     * has scanned sequentially all blocks up to this one.
     */
    uint256 m_last_block_processed GUARDED_BY(cs_wallet);
    /* Height of last block processed is used by wallet to know depth of transactions
     * without relying on Chain interface beyond asynchronous updates. For safety, we
     * initialize it to -1. Height is a pointer on node's tip and doesn't imply
     * that the wallet has scanned sequentially all blocks up to this one.
     */
    int m_last_block_processed_height GUARDED_BY(cs_wallet) = -1;
    std::map<OutputType, ScriptPubKeyMan*> m_external_spk_managers;
    std::map<OutputType, ScriptPubKeyMan*> m_internal_spk_managers;
    
    
    std::map<uint256, std::unique_ptr<ScriptPubKeyMan>> m_spk_managers;