diff options
| author | João Barbosa <[email protected]> | 2018-06-12 14:40:52 +0100 |
|---|---|---|
| committer | João Barbosa <[email protected]> | 2018-06-12 16:11:28 +0100 |
| commit | 537efe19e696a97ca6a4f461b2c1b4cb7ab001b7 (patch) | |
| tree | e45e2d5c7af24cfc3ec325af19e9065188f8ff4a /src/wallet/rpcwallet.cpp | |
| parent | Merge #13301: lint: Add linter to error on #include <*.cpp> (diff) | |
| download | discoin-537efe19e696a97ca6a4f461b2c1b4cb7ab001b7.tar.xz discoin-537efe19e696a97ca6a4f461b2c1b4cb7ab001b7.zip | |
rpc: Extract GetWalletNameFromJSONRPCRequest from GetWalletForJSONRPCRequest
Diffstat (limited to 'src/wallet/rpcwallet.cpp')
| -rw-r--r-- | src/wallet/rpcwallet.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 456f08bc1..d4c281b13 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -40,12 +40,21 @@ static const std::string WALLET_ENDPOINT_BASE = "/wallet/"; -std::shared_ptr<CWallet> GetWalletForJSONRPCRequest(const JSONRPCRequest& request) +bool GetWalletNameFromJSONRPCRequest(const JSONRPCRequest& request, std::string& wallet_name) { if (request.URI.substr(0, WALLET_ENDPOINT_BASE.size()) == WALLET_ENDPOINT_BASE) { // wallet endpoint was used - std::string requestedWallet = urlDecode(request.URI.substr(WALLET_ENDPOINT_BASE.size())); - std::shared_ptr<CWallet> pwallet = GetWallet(requestedWallet); + wallet_name = urlDecode(request.URI.substr(WALLET_ENDPOINT_BASE.size())); + return true; + } + return false; +} + +std::shared_ptr<CWallet> GetWalletForJSONRPCRequest(const JSONRPCRequest& request) +{ + std::string wallet_name; + if (GetWalletNameFromJSONRPCRequest(request, wallet_name)) { + std::shared_ptr<CWallet> pwallet = GetWallet(wallet_name); if (!pwallet) throw JSONRPCError(RPC_WALLET_NOT_FOUND, "Requested wallet does not exist or is not loaded"); return pwallet; } |