aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoão Barbosa <joao.paulo.barbosa@gmail.com>2018-09-22 00:53:25 +0100
committerJoão Barbosa <joao.paulo.barbosa@gmail.com>2018-10-18 23:26:06 +0100
commitd1b03b8e5f04a2cc9ebb985bd9a1aebd2068f757 (patch)
tree15591cb226059861f5aaec4777dbc6c57de0af47
parentfc4db35bfd78d85d6b52d5da3d89696160658450 (diff)
interfaces: Add getWalletDir and listWalletDir to Node
-rw-r--r--src/dummywallet.cpp10
-rw-r--r--src/interfaces/node.cpp14
-rw-r--r--src/interfaces/node.h6
3 files changed, 30 insertions, 0 deletions
diff --git a/src/dummywallet.cpp b/src/dummywallet.cpp
index 3714187a96..3eb77354c1 100644
--- a/src/dummywallet.cpp
+++ b/src/dummywallet.cpp
@@ -34,6 +34,16 @@ void DummyWalletInit::AddWalletOptions() const
const WalletInitInterface& g_wallet_init_interface = DummyWalletInit();
+fs::path GetWalletDir()
+{
+ throw std::logic_error("Wallet function called in non-wallet build.");
+}
+
+std::vector<fs::path> ListWalletDir()
+{
+ throw std::logic_error("Wallet function called in non-wallet build.");
+}
+
std::vector<std::shared_ptr<CWallet>> GetWallets()
{
throw std::logic_error("Wallet function called in non-wallet build.");
diff --git a/src/interfaces/node.cpp b/src/interfaces/node.cpp
index d95b41657c..2b19e11f08 100644
--- a/src/interfaces/node.cpp
+++ b/src/interfaces/node.cpp
@@ -38,6 +38,8 @@
#include <univalue.h>
class CWallet;
+fs::path GetWalletDir();
+std::vector<fs::path> ListWalletDir();
std::vector<std::shared_ptr<CWallet>> GetWallets();
namespace interfaces {
@@ -218,6 +220,18 @@ class NodeImpl : public Node
LOCK(::cs_main);
return ::pcoinsTip->GetCoin(output, coin);
}
+ std::string getWalletDir() override
+ {
+ return GetWalletDir().string();
+ }
+ std::vector<std::string> listWalletDir() override
+ {
+ std::vector<std::string> paths;
+ for (auto& path : ListWalletDir()) {
+ paths.push_back(path.string());
+ }
+ return paths;
+ }
std::vector<std::unique_ptr<Wallet>> getWallets() override
{
std::vector<std::unique_ptr<Wallet>> wallets;
diff --git a/src/interfaces/node.h b/src/interfaces/node.h
index 8185c015a9..1f8bbbff7a 100644
--- a/src/interfaces/node.h
+++ b/src/interfaces/node.h
@@ -173,6 +173,12 @@ public:
//! Get unspent outputs associated with a transaction.
virtual bool getUnspentOutput(const COutPoint& output, Coin& coin) = 0;
+ //! Return default wallet directory.
+ virtual std::string getWalletDir() = 0;
+
+ //! Return available wallets in wallet directory.
+ virtual std::vector<std::string> listWalletDir() = 0;
+
//! Return interfaces for accessing wallets (if any).
virtual std::vector<std::unique_ptr<Wallet>> getWallets() = 0;