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 }