mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-13 12:33:42 +02:00
Conflicts were mostly obvious, except for those in CreateTransactionInternal. (This function was moved from wallet.cpp to spend.cpp, and substantially rewritten, between 0.21 and 22.0.) For those I manually applied the changes from the diff, which wound up taking a slightly different form. Also had to update the new test because the `addresses` field of the RPC output was removed.
70 lines
3.2 KiB
C++
70 lines
3.2 KiB
C++
// Copyright (c) 2010-2020 The Bitcoin Core developers
|
|
// Distributed under the MIT software license, see the accompanying
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
#include <util/error.h>
|
|
|
|
#include <tinyformat.h>
|
|
#include <util/system.h>
|
|
#include <util/translation.h>
|
|
|
|
bilingual_str TransactionErrorString(const TransactionError err)
|
|
{
|
|
switch (err) {
|
|
case TransactionError::OK:
|
|
return Untranslated("No error");
|
|
case TransactionError::MISSING_INPUTS:
|
|
return Untranslated("Inputs missing or spent");
|
|
case TransactionError::ALREADY_IN_CHAIN:
|
|
return Untranslated("Transaction already in block chain");
|
|
case TransactionError::P2P_DISABLED:
|
|
return Untranslated("Peer-to-peer functionality missing or disabled");
|
|
case TransactionError::MEMPOOL_REJECTED:
|
|
return Untranslated("Transaction rejected by AcceptToMemoryPool");
|
|
case TransactionError::MEMPOOL_ERROR:
|
|
return Untranslated("AcceptToMemoryPool failed");
|
|
case TransactionError::INVALID_PSBT:
|
|
return Untranslated("PSBT is not well-formed");
|
|
case TransactionError::PSBT_MISMATCH:
|
|
return Untranslated("PSBTs not compatible (different transactions)");
|
|
case TransactionError::SIGHASH_MISMATCH:
|
|
return Untranslated("Specified sighash value does not match value stored in PSBT");
|
|
case TransactionError::MAX_FEE_EXCEEDED:
|
|
return Untranslated("Fee exceeds maximum configured by user (e.g. -maxtxfee, maxfeerate)");
|
|
case TransactionError::EXTERNAL_SIGNER_NOT_FOUND:
|
|
return Untranslated("External signer not found");
|
|
case TransactionError::EXTERNAL_SIGNER_FAILED:
|
|
return Untranslated("External signer failed to sign");
|
|
case TransactionError::BLINDING_REQUIRED:
|
|
return Untranslated("Transaction is not yet fully blinded");
|
|
case TransactionError::VALUE_IMBALANCE:
|
|
return Untranslated("Transaction values or blinders are not balanced");
|
|
case TransactionError::UTXOS_MISSING_BALANCE_CHECK:
|
|
return Untranslated("Missing UTXOs that are needed to check transaction balance");
|
|
case TransactionError::INVALID_VALUE_PROOF:
|
|
return Untranslated("Proof of blinded value is invalid");
|
|
case TransactionError::INVALID_ASSET_PROOF:
|
|
return Untranslated("Proof of blinded asset is invalid");
|
|
case TransactionError::MISSING_BLINDING_KEY:
|
|
return Untranslated("Wallet does not have necessary blinding key");
|
|
case TransactionError::MISSING_SIDECHANNEL_DATA:
|
|
return Untranslated("A rangeproof did not encode necessary blinding data");
|
|
// no default case, so the compiler can warn about missing cases
|
|
}
|
|
assert(false);
|
|
}
|
|
|
|
bilingual_str ResolveErrMsg(const std::string& optname, const std::string& strBind)
|
|
{
|
|
return strprintf(_("Cannot resolve -%s address: '%s'"), optname, strBind);
|
|
}
|
|
|
|
bilingual_str AmountHighWarn(const std::string& optname)
|
|
{
|
|
return strprintf(_("%s is set very high!"), optname);
|
|
}
|
|
|
|
bilingual_str AmountErrMsg(const std::string& optname, const std::string& strValue)
|
|
{
|
|
return strprintf(_("Invalid amount for -%s=<amount>: '%s'"), optname, strValue);
|
|
}
|