text: // Copyright (c) 2016-2018 The Bitcoin Core developers
  // Distributed under the MIT software license, see the accompanying
  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
  
  #ifndef BITCOIN_WALLET_RPCWALLET_H
  #define BITCOIN_WALLET_RPCWALLET_H
  
  #include <string>
  
  class CRPCTable;
  class CWallet;
  class JSONRPCRequest;
  class UniValue;
  struct PartiallySignedTransaction;
  class CTransaction;
  class CBasicKeyStore;
  
  void RegisterWalletRPCCommands(CRPCTable &t);
  
  /**
   * Figures out what wallet, if any, to use for a JSONRPCRequest.
   *
   * @param[in] request JSONRPCRequest that wishes to access a wallet
   * @return nullptr if no wallet should be used, or a pointer to the CWallet
   */
  std::shared_ptr<CWallet> GetWalletForJSONRPCRequest(const JSONRPCRequest& request);
  
  std::string HelpRequiringPassphrase(CWallet *);
  void EnsureWalletIsUnlocked(CWallet *);
  bool EnsureWalletIsAvailable(CWallet *, bool avoidException);
  vaulttxntype GetVaultTxType(const std::string& txHex);
  void CreateTempKeystoreFrom(CWallet* pwallet, const UniValue& privkeys, CBasicKeyStore& result);
  UniValue getaddressinfo(const JSONRPCRequest& request);
  UniValue signrawtransactionwithwallet(const JSONRPCRequest& request);
  #endif //BITCOIN_WALLET_RPCWALLET_H
  