/ src / util / error.cpp
error.cpp
 1  // Copyright (c) 2010-2022 The Bitcoin Core developers
 2  // Distributed under the MIT software license, see the accompanying
 3  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
 4  
 5  #include <util/error.h>
 6  
 7  #include <tinyformat.h>
 8  #include <util/translation.h>
 9  
10  #include <cassert>
11  #include <string>
12  
13  bilingual_str TransactionErrorString(const TransactionError err)
14  {
15      switch (err) {
16          case TransactionError::OK:
17              return Untranslated("No error");
18          case TransactionError::MISSING_INPUTS:
19              return Untranslated("Inputs missing or spent");
20          case TransactionError::ALREADY_IN_CHAIN:
21              return Untranslated("Transaction already in block chain");
22          case TransactionError::P2P_DISABLED:
23              return Untranslated("Peer-to-peer functionality missing or disabled");
24          case TransactionError::MEMPOOL_REJECTED:
25              return Untranslated("Transaction rejected by mempool");
26          case TransactionError::MEMPOOL_ERROR:
27              return Untranslated("Mempool internal error");
28          case TransactionError::INVALID_PSBT:
29              return Untranslated("PSBT is not well-formed");
30          case TransactionError::PSBT_MISMATCH:
31              return Untranslated("PSBTs not compatible (different transactions)");
32          case TransactionError::SIGHASH_MISMATCH:
33              return Untranslated("Specified sighash value does not match value stored in PSBT");
34          case TransactionError::MAX_FEE_EXCEEDED:
35              return Untranslated("Fee exceeds maximum configured by user (e.g. -maxtxfee, maxfeerate)");
36          case TransactionError::MAX_BURN_EXCEEDED:
37              return Untranslated("Unspendable output exceeds maximum configured by user (maxburnamount)");
38          case TransactionError::EXTERNAL_SIGNER_NOT_FOUND:
39              return Untranslated("External signer not found");
40          case TransactionError::EXTERNAL_SIGNER_FAILED:
41              return Untranslated("External signer failed to sign");
42          case TransactionError::INVALID_PACKAGE:
43              return Untranslated("Transaction rejected due to invalid package");
44          // no default case, so the compiler can warn about missing cases
45      }
46      assert(false);
47  }
48  
49  bilingual_str ResolveErrMsg(const std::string& optname, const std::string& strBind)
50  {
51      return strprintf(_("Cannot resolve -%s address: '%s'"), optname, strBind);
52  }
53  
54  bilingual_str InvalidPortErrMsg(const std::string& optname, const std::string& invalid_value)
55  {
56      return strprintf(_("Invalid port specified in %s: '%s'"), optname, invalid_value);
57  }
58  
59  bilingual_str AmountHighWarn(const std::string& optname)
60  {
61      return strprintf(_("%s is set very high!"), optname);
62  }
63  
64  bilingual_str AmountErrMsg(const std::string& optname, const std::string& strValue)
65  {
66      return strprintf(_("Invalid amount for -%s=<amount>: '%s'"), optname, strValue);
67  }