diff options
author | Wladimir J. van der Laan <laanwj@protonmail.com> | 2021-01-19 15:15:02 +0100 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@protonmail.com> | 2021-01-25 07:55:35 +0100 |
commit | a6739cc86827759c543bf81f5532ec46e40549c3 (patch) | |
tree | 6b93a270848a33ce7ddfac0186830225b646a74f /src | |
parent | 43f3ada27b835e6b198f9a669e4955d06f5c4d08 (diff) |
rpc: Add specific error code for "wallet already loaded"
Diffstat (limited to 'src')
-rw-r--r-- | src/rpc/protocol.h | 1 | ||||
-rw-r--r-- | src/wallet/rpcwallet.cpp | 13 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/rpc/protocol.h b/src/rpc/protocol.h index c8ceb2c186..fc00a1efad 100644 --- a/src/rpc/protocol.h +++ b/src/rpc/protocol.h @@ -79,6 +79,7 @@ enum RPCErrorCode RPC_WALLET_ALREADY_UNLOCKED = -17, //!< Wallet is already unlocked RPC_WALLET_NOT_FOUND = -18, //!< Invalid wallet specified RPC_WALLET_NOT_SPECIFIED = -19, //!< No wallet specified (error when there are multiple wallets loaded) + RPC_WALLET_ALREADY_LOADED = -35, //!< This same wallet is already loaded //! Backwards compatible aliases RPC_WALLET_INVALID_ACCOUNT_NAME = RPC_WALLET_INVALID_LABEL_NAME, diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 7705794c63..e3631d5c6b 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -2615,7 +2615,18 @@ static RPCHelpMan loadwallet() if (!wallet) { // Map bad format to not found, since bad format is returned when the // wallet directory exists, but doesn't contain a data file. - RPCErrorCode code = status == DatabaseStatus::FAILED_NOT_FOUND || status == DatabaseStatus::FAILED_BAD_FORMAT ? RPC_WALLET_NOT_FOUND : RPC_WALLET_ERROR; + RPCErrorCode code = RPC_WALLET_ERROR; + switch (status) { + case DatabaseStatus::FAILED_NOT_FOUND: + case DatabaseStatus::FAILED_BAD_FORMAT: + code = RPC_WALLET_NOT_FOUND; + break; + case DatabaseStatus::FAILED_ALREADY_LOADED: + code = RPC_WALLET_ALREADY_LOADED; + break; + default: // RPC_WALLET_ERROR is returned for all other cases. + break; + } throw JSONRPCError(code, error.original); } |