Monero
core_rpc_server_error_codes.h
Go to the documentation of this file.
1 // Copyright (c) 2014-2022, The Monero Project
2 //
3 // All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without modification, are
6 // permitted provided that the following conditions are met:
7 //
8 // 1. Redistributions of source code must retain the above copyright notice, this list of
9 // conditions and the following disclaimer.
10 //
11 // 2. Redistributions in binary form must reproduce the above copyright notice, this list
12 // of conditions and the following disclaimer in the documentation and/or other
13 // materials provided with the distribution.
14 //
15 // 3. Neither the name of the copyright holder nor the names of its contributors may be
16 // used to endorse or promote products derived from this software without specific
17 // prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
20 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
22 // THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26 // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
27 // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 //
29 // Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
30 
31 #pragma once
32 
33 
34 #define CORE_RPC_ERROR_CODE_WRONG_PARAM -1
35 #define CORE_RPC_ERROR_CODE_TOO_BIG_HEIGHT -2
36 #define CORE_RPC_ERROR_CODE_TOO_BIG_RESERVE_SIZE -3
37 #define CORE_RPC_ERROR_CODE_WRONG_WALLET_ADDRESS -4
38 #define CORE_RPC_ERROR_CODE_INTERNAL_ERROR -5
39 #define CORE_RPC_ERROR_CODE_WRONG_BLOCKBLOB -6
40 #define CORE_RPC_ERROR_CODE_BLOCK_NOT_ACCEPTED -7
41 #define CORE_RPC_ERROR_CODE_CORE_BUSY -9
42 #define CORE_RPC_ERROR_CODE_WRONG_BLOCKBLOB_SIZE -10
43 #define CORE_RPC_ERROR_CODE_UNSUPPORTED_RPC -11
44 #define CORE_RPC_ERROR_CODE_MINING_TO_SUBADDRESS -12
45 #define CORE_RPC_ERROR_CODE_REGTEST_REQUIRED -13
46 #define CORE_RPC_ERROR_CODE_PAYMENT_REQUIRED -14
47 #define CORE_RPC_ERROR_CODE_INVALID_CLIENT -15
48 #define CORE_RPC_ERROR_CODE_PAYMENT_TOO_LOW -16
49 #define CORE_RPC_ERROR_CODE_DUPLICATE_PAYMENT -17
50 #define CORE_RPC_ERROR_CODE_STALE_PAYMENT -18
51 #define CORE_RPC_ERROR_CODE_RESTRICTED -19
52 #define CORE_RPC_ERROR_CODE_UNSUPPORTED_BOOTSTRAP -20
53 #define CORE_RPC_ERROR_CODE_PAYMENTS_NOT_ENABLED -21
54 
55 static inline const char *get_rpc_server_error_message(int64_t code)
56 {
57  switch (code)
58  {
59  case CORE_RPC_ERROR_CODE_WRONG_PARAM: return "Invalid parameter";
60  case CORE_RPC_ERROR_CODE_TOO_BIG_HEIGHT: return "Height is too large";
61  case CORE_RPC_ERROR_CODE_TOO_BIG_RESERVE_SIZE: return "Reserve size is too large";
62  case CORE_RPC_ERROR_CODE_WRONG_WALLET_ADDRESS: return "Wrong wallet address";
63  case CORE_RPC_ERROR_CODE_INTERNAL_ERROR: return "Internal error";
64  case CORE_RPC_ERROR_CODE_WRONG_BLOCKBLOB: return "Wrong block blob";
65  case CORE_RPC_ERROR_CODE_BLOCK_NOT_ACCEPTED: return "Block not accepted";
66  case CORE_RPC_ERROR_CODE_CORE_BUSY: return "Core is busy";
67  case CORE_RPC_ERROR_CODE_WRONG_BLOCKBLOB_SIZE: return "Wrong block blob size";
68  case CORE_RPC_ERROR_CODE_UNSUPPORTED_RPC: return "Unsupported RPC";
69  case CORE_RPC_ERROR_CODE_MINING_TO_SUBADDRESS: return "Mining to subaddress is not supported";
70  case CORE_RPC_ERROR_CODE_REGTEST_REQUIRED: return "Regtest mode required";
71  case CORE_RPC_ERROR_CODE_PAYMENT_REQUIRED: return "Payment required";
72  case CORE_RPC_ERROR_CODE_INVALID_CLIENT: return "Invalid client";
73  case CORE_RPC_ERROR_CODE_PAYMENT_TOO_LOW: return "Payment too low";
74  case CORE_RPC_ERROR_CODE_DUPLICATE_PAYMENT: return "Duplicate payment";
75  case CORE_RPC_ERROR_CODE_STALE_PAYMENT: return "Stale payment";
76  case CORE_RPC_ERROR_CODE_RESTRICTED: return "Parameters beyond restricted allowance";
77  case CORE_RPC_ERROR_CODE_UNSUPPORTED_BOOTSTRAP: return "Command is unsupported in bootstrap mode";
78  case CORE_RPC_ERROR_CODE_PAYMENTS_NOT_ENABLED: return "Payments not enabled";
79  default: MERROR("Unknown error: " << code); return "Unknown error";
80  }
81 }
82 
#define CORE_RPC_ERROR_CODE_DUPLICATE_PAYMENT
Definition: core_rpc_server_error_codes.h:49
#define CORE_RPC_ERROR_CODE_BLOCK_NOT_ACCEPTED
Definition: core_rpc_server_error_codes.h:40
#define CORE_RPC_ERROR_CODE_WRONG_PARAM
Definition: core_rpc_server_error_codes.h:34
#define CORE_RPC_ERROR_CODE_PAYMENT_TOO_LOW
Definition: core_rpc_server_error_codes.h:48
#define CORE_RPC_ERROR_CODE_INTERNAL_ERROR
Definition: core_rpc_server_error_codes.h:38
#define CORE_RPC_ERROR_CODE_STALE_PAYMENT
Definition: core_rpc_server_error_codes.h:50
#define CORE_RPC_ERROR_CODE_PAYMENTS_NOT_ENABLED
Definition: core_rpc_server_error_codes.h:53
#define CORE_RPC_ERROR_CODE_WRONG_BLOCKBLOB
Definition: core_rpc_server_error_codes.h:39
#define CORE_RPC_ERROR_CODE_TOO_BIG_HEIGHT
Definition: core_rpc_server_error_codes.h:35
const portMappingElt code
Definition: portlistingparse.c:22
#define CORE_RPC_ERROR_CODE_INVALID_CLIENT
Definition: core_rpc_server_error_codes.h:47
#define CORE_RPC_ERROR_CODE_MINING_TO_SUBADDRESS
Definition: core_rpc_server_error_codes.h:44
#define CORE_RPC_ERROR_CODE_WRONG_BLOCKBLOB_SIZE
Definition: core_rpc_server_error_codes.h:42
#define CORE_RPC_ERROR_CODE_RESTRICTED
Definition: core_rpc_server_error_codes.h:51
#define CORE_RPC_ERROR_CODE_PAYMENT_REQUIRED
Definition: core_rpc_server_error_codes.h:46
#define CORE_RPC_ERROR_CODE_UNSUPPORTED_BOOTSTRAP
Definition: core_rpc_server_error_codes.h:52
#define CORE_RPC_ERROR_CODE_CORE_BUSY
Definition: core_rpc_server_error_codes.h:41
static const char * get_rpc_server_error_message(int64_t code)
Definition: core_rpc_server_error_codes.h:55
signed __int64 int64_t
Definition: stdint.h:135
#define CORE_RPC_ERROR_CODE_REGTEST_REQUIRED
Definition: core_rpc_server_error_codes.h:45
#define CORE_RPC_ERROR_CODE_TOO_BIG_RESERVE_SIZE
Definition: core_rpc_server_error_codes.h:36
#define CORE_RPC_ERROR_CODE_WRONG_WALLET_ADDRESS
Definition: core_rpc_server_error_codes.h:37
#define CORE_RPC_ERROR_CODE_UNSUPPORTED_RPC
Definition: core_rpc_server_error_codes.h:43