1 // Copyright (c) 2010-2019 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/system.h>
9 #include <util/translation.h>
10 
TransactionErrorString(const TransactionError err)11 bilingual_str TransactionErrorString(const TransactionError err)
12 {
13     switch (err) {
14         case TransactionError::OK:
15             return Untranslated("No error");
16         case TransactionError::MISSING_INPUTS:
17             return Untranslated("Inputs missing or spent");
18         case TransactionError::ALREADY_IN_CHAIN:
19             return Untranslated("Transaction already in block chain");
20         case TransactionError::P2P_DISABLED:
21             return Untranslated("Peer-to-peer functionality missing or disabled");
22         case TransactionError::MEMPOOL_REJECTED:
23             return Untranslated("Transaction rejected by AcceptToMemoryPool");
24         case TransactionError::MEMPOOL_ERROR:
25             return Untranslated("AcceptToMemoryPool failed");
26         case TransactionError::INVALID_PSBT:
27             return Untranslated("PSBT is not well-formed");
28         case TransactionError::PSBT_MISMATCH:
29             return Untranslated("PSBTs not compatible (different transactions)");
30         case TransactionError::SIGHASH_MISMATCH:
31             return Untranslated("Specified sighash value does not match value stored in PSBT");
32         case TransactionError::MAX_FEE_EXCEEDED:
33             return Untranslated("Fee exceeds maximum configured by user (e.g. -maxtxfee, maxfeerate)");
34         // no default case, so the compiler can warn about missing cases
35     }
36     assert(false);
37 }
38 
ResolveErrMsg(const std::string & optname,const std::string & strBind)39 bilingual_str ResolveErrMsg(const std::string& optname, const std::string& strBind)
40 {
41     return strprintf(_("Cannot resolve -%s address: '%s'"), optname, strBind);
42 }
43 
AmountHighWarn(const std::string & optname)44 bilingual_str AmountHighWarn(const std::string& optname)
45 {
46     return strprintf(_("%s is set very high!"), optname);
47 }
48 
AmountErrMsg(const std::string & optname,const std::string & strValue)49 bilingual_str AmountErrMsg(const std::string& optname, const std::string& strValue)
50 {
51     return strprintf(_("Invalid amount for -%s=<amount>: '%s'"), optname, strValue);
52 }
53