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