mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Deprecate unused/obsolete error codes:
The tecUNFUNDED code is actively used when attempting to create payment channels; the messages incorrectly list it as deprecated. Meanwhile, the tecUNFUNDED_ADD code actually is an unused legacy code, dating back to when there was a WalletAdd transactor. The terLAST and terFUNDS_SPENT codes are also unused legacy codes. Engine result messages are not part of the binary format and are documented as subject to change without notice, so this should not require an amendment nor a new API version. Align error code table for human readability.
This commit is contained in:
@@ -185,7 +185,7 @@ enum TERcodes : TERUnderlyingType {
|
|||||||
// - Hold
|
// - Hold
|
||||||
// - Makes hole in sequence which jams transactions.
|
// - Makes hole in sequence which jams transactions.
|
||||||
terRETRY = -99,
|
terRETRY = -99,
|
||||||
terFUNDS_SPENT, // This is a free transaction, so don't burden network.
|
terFUNDS_SPENT, // DEPRECATED.
|
||||||
terINSUF_FEE_B, // Can't pay fee, therefore don't burden network.
|
terINSUF_FEE_B, // Can't pay fee, therefore don't burden network.
|
||||||
terNO_ACCOUNT, // Can't pay fee, therefore don't burden network.
|
terNO_ACCOUNT, // Can't pay fee, therefore don't burden network.
|
||||||
terNO_AUTH, // Not authorized to hold IOUs.
|
terNO_AUTH, // Not authorized to hold IOUs.
|
||||||
@@ -193,7 +193,7 @@ enum TERcodes : TERUnderlyingType {
|
|||||||
terOWNERS, // Can't succeed with non-zero owner count.
|
terOWNERS, // Can't succeed with non-zero owner count.
|
||||||
terPRE_SEQ, // Can't pay fee, no point in forwarding, so don't
|
terPRE_SEQ, // Can't pay fee, no point in forwarding, so don't
|
||||||
// burden network.
|
// burden network.
|
||||||
terLAST, // Process after all other transactions
|
terLAST, // DEPRECATED.
|
||||||
terNO_RIPPLE, // Rippling not allowed
|
terNO_RIPPLE, // Rippling not allowed
|
||||||
terQUEUED // Transaction is being held in TxQ until fee drops
|
terQUEUED // Transaction is being held in TxQ until fee drops
|
||||||
};
|
};
|
||||||
@@ -238,7 +238,7 @@ enum TECcodes : TERUnderlyingType {
|
|||||||
// DO NOT CHANGE THESE NUMBERS: They appear in ledger meta data.
|
// DO NOT CHANGE THESE NUMBERS: They appear in ledger meta data.
|
||||||
tecCLAIM = 100,
|
tecCLAIM = 100,
|
||||||
tecPATH_PARTIAL = 101,
|
tecPATH_PARTIAL = 101,
|
||||||
tecUNFUNDED_ADD = 102,
|
tecUNFUNDED_ADD = 102, // Unused legacy code
|
||||||
tecUNFUNDED_OFFER = 103,
|
tecUNFUNDED_OFFER = 103,
|
||||||
tecUNFUNDED_PAYMENT = 104,
|
tecUNFUNDED_PAYMENT = 104,
|
||||||
tecFAILED_PROCESSING = 105,
|
tecFAILED_PROCESSING = 105,
|
||||||
@@ -250,7 +250,7 @@ enum TECcodes : TERUnderlyingType {
|
|||||||
tecNO_LINE_INSUF_RESERVE = 126,
|
tecNO_LINE_INSUF_RESERVE = 126,
|
||||||
tecNO_LINE_REDUNDANT = 127,
|
tecNO_LINE_REDUNDANT = 127,
|
||||||
tecPATH_DRY = 128,
|
tecPATH_DRY = 128,
|
||||||
tecUNFUNDED = 129, // Deprecated, old ambiguous unfunded.
|
tecUNFUNDED = 129,
|
||||||
tecNO_ALTERNATIVE_KEY = 130,
|
tecNO_ALTERNATIVE_KEY = 130,
|
||||||
tecNO_REGULAR_KEY = 131,
|
tecNO_REGULAR_KEY = 131,
|
||||||
tecOWNERS = 132,
|
tecOWNERS = 132,
|
||||||
|
|||||||
@@ -31,230 +31,144 @@ static std::unordered_map<
|
|||||||
std::pair<char const* const, char const* const>> const&
|
std::pair<char const* const, char const* const>> const&
|
||||||
transResults()
|
transResults()
|
||||||
{
|
{
|
||||||
static std::unordered_map<
|
// clang-format off
|
||||||
TERUnderlyingType,
|
|
||||||
std::pair<char const* const, char const* const>> const results{
|
|
||||||
{tecCLAIM, {"tecCLAIM", "Fee claimed. Sequence used. No action."}},
|
|
||||||
{tecDIR_FULL, {"tecDIR_FULL", "Can not add entry to full directory."}},
|
|
||||||
{tecFAILED_PROCESSING,
|
|
||||||
{"tecFAILED_PROCESSING", "Failed to correctly process transaction."}},
|
|
||||||
{tecINSUF_RESERVE_LINE,
|
|
||||||
{"tecINSUF_RESERVE_LINE", "Insufficient reserve to add trust line."}},
|
|
||||||
{tecINSUF_RESERVE_OFFER,
|
|
||||||
{"tecINSUF_RESERVE_OFFER", "Insufficient reserve to create offer."}},
|
|
||||||
{tecNO_DST,
|
|
||||||
{"tecNO_DST", "Destination does not exist. Send XRP to create it."}},
|
|
||||||
{tecNO_DST_INSUF_XRP,
|
|
||||||
{"tecNO_DST_INSUF_XRP",
|
|
||||||
"Destination does not exist. Too little XRP sent to create it."}},
|
|
||||||
{tecNO_LINE_INSUF_RESERVE,
|
|
||||||
{"tecNO_LINE_INSUF_RESERVE",
|
|
||||||
"No such line. Too little reserve to create it."}},
|
|
||||||
{tecNO_LINE_REDUNDANT,
|
|
||||||
{"tecNO_LINE_REDUNDANT", "Can't set non-existent line to default."}},
|
|
||||||
{tecPATH_DRY, {"tecPATH_DRY", "Path could not send partial amount."}},
|
|
||||||
{tecPATH_PARTIAL,
|
|
||||||
{"tecPATH_PARTIAL", "Path could not send full amount."}},
|
|
||||||
{tecNO_ALTERNATIVE_KEY,
|
|
||||||
{"tecNO_ALTERNATIVE_KEY",
|
|
||||||
"The operation would remove the ability to sign transactions with "
|
|
||||||
"the account."}},
|
|
||||||
{tecNO_REGULAR_KEY, {"tecNO_REGULAR_KEY", "Regular key is not set."}},
|
|
||||||
{tecOVERSIZE, {"tecOVERSIZE", "Object exceeded serialization limits."}},
|
|
||||||
{tecUNFUNDED,
|
|
||||||
{"tecUNFUNDED", "One of _ADD, _OFFER, or _SEND. Deprecated."}},
|
|
||||||
{tecUNFUNDED_ADD,
|
|
||||||
{"tecUNFUNDED_ADD", "Insufficient XRP balance for WalletAdd."}},
|
|
||||||
{tecUNFUNDED_OFFER,
|
|
||||||
{"tecUNFUNDED_OFFER", "Insufficient balance to fund created offer."}},
|
|
||||||
{tecUNFUNDED_PAYMENT,
|
|
||||||
{"tecUNFUNDED_PAYMENT", "Insufficient XRP balance to send."}},
|
|
||||||
{tecOWNERS, {"tecOWNERS", "Non-zero owner count."}},
|
|
||||||
{tecNO_ISSUER, {"tecNO_ISSUER", "Issuer account does not exist."}},
|
|
||||||
{tecNO_AUTH, {"tecNO_AUTH", "Not authorized to hold asset."}},
|
|
||||||
{tecNO_LINE, {"tecNO_LINE", "No such line."}},
|
|
||||||
{tecINSUFF_FEE, {"tecINSUFF_FEE", "Insufficient balance to pay fee."}},
|
|
||||||
{tecFROZEN, {"tecFROZEN", "Asset is frozen."}},
|
|
||||||
{tecNO_TARGET, {"tecNO_TARGET", "Target account does not exist."}},
|
|
||||||
{tecNO_PERMISSION,
|
|
||||||
{"tecNO_PERMISSION", "No permission to perform requested operation."}},
|
|
||||||
{tecNO_ENTRY, {"tecNO_ENTRY", "No matching entry found."}},
|
|
||||||
{tecINSUFFICIENT_RESERVE,
|
|
||||||
{"tecINSUFFICIENT_RESERVE",
|
|
||||||
"Insufficient reserve to complete requested operation."}},
|
|
||||||
{tecNEED_MASTER_KEY,
|
|
||||||
{"tecNEED_MASTER_KEY",
|
|
||||||
"The operation requires the use of the Master Key."}},
|
|
||||||
{tecDST_TAG_NEEDED,
|
|
||||||
{"tecDST_TAG_NEEDED", "A destination tag is required."}},
|
|
||||||
{tecINTERNAL,
|
|
||||||
{"tecINTERNAL", "An internal error has occurred during processing."}},
|
|
||||||
{tecCRYPTOCONDITION_ERROR,
|
|
||||||
{"tecCRYPTOCONDITION_ERROR",
|
|
||||||
"Malformed, invalid, or mismatched conditional or fulfillment."}},
|
|
||||||
{tecINVARIANT_FAILED,
|
|
||||||
{"tecINVARIANT_FAILED",
|
|
||||||
"One or more invariants for the transaction were not satisfied."}},
|
|
||||||
{tecEXPIRED, {"tecEXPIRED", "Expiration time is passed."}},
|
|
||||||
{tecDUPLICATE, {"tecDUPLICATE", "Ledger object already exists."}},
|
|
||||||
{tecKILLED, {"tecKILLED", "FillOrKill offer killed."}},
|
|
||||||
{tecHAS_OBLIGATIONS,
|
|
||||||
{"tecHAS_OBLIGATIONS",
|
|
||||||
"The account cannot be deleted since it has obligations."}},
|
|
||||||
{tecTOO_SOON,
|
|
||||||
{"tecTOO_SOON",
|
|
||||||
"It is too early to attempt the requested operation. Please wait."}},
|
|
||||||
|
|
||||||
{tefALREADY,
|
// Macros are generally ugly, but they can help make code readable to
|
||||||
{"tefALREADY", "The exact transaction was already in this ledger."}},
|
// humans without affecting the compiler.
|
||||||
{tefBAD_ADD_AUTH,
|
#define MAKE_ERROR(code, desc) { code, { #code, desc } }
|
||||||
{"tefBAD_ADD_AUTH", "Not authorized to add account."}},
|
|
||||||
{tefBAD_AUTH,
|
|
||||||
{"tefBAD_AUTH", "Transaction's public key is not authorized."}},
|
|
||||||
{tefBAD_LEDGER, {"tefBAD_LEDGER", "Ledger in unexpected state."}},
|
|
||||||
{tefBAD_QUORUM,
|
|
||||||
{"tefBAD_QUORUM", "Signatures provided do not meet the quorum."}},
|
|
||||||
{tefBAD_SIGNATURE,
|
|
||||||
{"tefBAD_SIGNATURE", "A signature is provided for a non-signer."}},
|
|
||||||
{tefCREATED, {"tefCREATED", "Can't add an already created account."}},
|
|
||||||
{tefEXCEPTION, {"tefEXCEPTION", "Unexpected program state."}},
|
|
||||||
{tefFAILURE, {"tefFAILURE", "Failed to apply."}},
|
|
||||||
{tefINTERNAL, {"tefINTERNAL", "Internal error."}},
|
|
||||||
{tefMASTER_DISABLED, {"tefMASTER_DISABLED", "Master key is disabled."}},
|
|
||||||
{tefMAX_LEDGER, {"tefMAX_LEDGER", "Ledger sequence too high."}},
|
|
||||||
{tefNO_AUTH_REQUIRED, {"tefNO_AUTH_REQUIRED", "Auth is not required."}},
|
|
||||||
{tefNOT_MULTI_SIGNING,
|
|
||||||
{"tefNOT_MULTI_SIGNING",
|
|
||||||
"Account has no appropriate list of multi-signers."}},
|
|
||||||
{tefPAST_SEQ,
|
|
||||||
{"tefPAST_SEQ", "This sequence number has already passed."}},
|
|
||||||
{tefWRONG_PRIOR,
|
|
||||||
{"tefWRONG_PRIOR", "This previous transaction does not match."}},
|
|
||||||
{tefBAD_AUTH_MASTER,
|
|
||||||
{"tefBAD_AUTH_MASTER",
|
|
||||||
"Auth for unclaimed account needs correct master key."}},
|
|
||||||
{tefINVARIANT_FAILED,
|
|
||||||
{"tefINVARIANT_FAILED",
|
|
||||||
"Fee claim violated invariants for the transaction."}},
|
|
||||||
{tefTOO_BIG, {"tefTOO_BIG", "Transaction affects too many items."}},
|
|
||||||
|
|
||||||
{telLOCAL_ERROR, {"telLOCAL_ERROR", "Local failure."}},
|
static
|
||||||
{telBAD_DOMAIN, {"telBAD_DOMAIN", "Domain too long."}},
|
std::unordered_map<
|
||||||
{telBAD_PATH_COUNT,
|
TERUnderlyingType,
|
||||||
{"telBAD_PATH_COUNT", "Malformed: Too many paths."}},
|
std::pair<char const* const, char const* const>> const results
|
||||||
{telBAD_PUBLIC_KEY, {"telBAD_PUBLIC_KEY", "Public key too long."}},
|
{
|
||||||
{telFAILED_PROCESSING,
|
MAKE_ERROR(tecCLAIM, "Fee claimed. Sequence used. No action."),
|
||||||
{"telFAILED_PROCESSING", "Failed to correctly process transaction."}},
|
MAKE_ERROR(tecDIR_FULL, "Can not add entry to full directory."),
|
||||||
{telINSUF_FEE_P, {"telINSUF_FEE_P", "Fee insufficient."}},
|
MAKE_ERROR(tecFAILED_PROCESSING, "Failed to correctly process transaction."),
|
||||||
{telNO_DST_PARTIAL,
|
MAKE_ERROR(tecINSUF_RESERVE_LINE, "Insufficient reserve to add trust line."),
|
||||||
{"telNO_DST_PARTIAL",
|
MAKE_ERROR(tecINSUF_RESERVE_OFFER, "Insufficient reserve to create offer."),
|
||||||
"Partial payment to create account not allowed."}},
|
MAKE_ERROR(tecNO_DST, "Destination does not exist. Send XRP to create it."),
|
||||||
{telCAN_NOT_QUEUE, {"telCAN_NOT_QUEUE", "Can not queue at this time."}},
|
MAKE_ERROR(tecNO_DST_INSUF_XRP, "Destination does not exist. Too little XRP sent to create it."),
|
||||||
{telCAN_NOT_QUEUE_BALANCE,
|
MAKE_ERROR(tecNO_LINE_INSUF_RESERVE, "No such line. Too little reserve to create it."),
|
||||||
{"telCAN_NOT_QUEUE_BALANCE",
|
MAKE_ERROR(tecNO_LINE_REDUNDANT, "Can't set non-existent line to default."),
|
||||||
"Can not queue at this time: insufficient balance to pay all queued "
|
MAKE_ERROR(tecPATH_DRY, "Path could not send partial amount."),
|
||||||
"fees."}},
|
MAKE_ERROR(tecPATH_PARTIAL, "Path could not send full amount."),
|
||||||
{telCAN_NOT_QUEUE_BLOCKS,
|
MAKE_ERROR(tecNO_ALTERNATIVE_KEY, "The operation would remove the ability to sign transactions with the account."),
|
||||||
{"telCAN_NOT_QUEUE_BLOCKS",
|
MAKE_ERROR(tecNO_REGULAR_KEY, "Regular key is not set."),
|
||||||
"Can not queue at this time: would block later queued "
|
MAKE_ERROR(tecOVERSIZE, "Object exceeded serialization limits."),
|
||||||
"transaction(s)."}},
|
MAKE_ERROR(tecUNFUNDED, "Not enough XRP to satisfy the reserve requirement."),
|
||||||
{telCAN_NOT_QUEUE_BLOCKED,
|
MAKE_ERROR(tecUNFUNDED_ADD, "DEPRECATED."),
|
||||||
{"telCAN_NOT_QUEUE_BLOCKED",
|
MAKE_ERROR(tecUNFUNDED_OFFER, "Insufficient balance to fund created offer."),
|
||||||
"Can not queue at this time: blocking transaction in queue."}},
|
MAKE_ERROR(tecUNFUNDED_PAYMENT, "Insufficient XRP balance to send."),
|
||||||
{telCAN_NOT_QUEUE_FEE,
|
MAKE_ERROR(tecOWNERS, "Non-zero owner count."),
|
||||||
{"telCAN_NOT_QUEUE_FEE",
|
MAKE_ERROR(tecNO_ISSUER, "Issuer account does not exist."),
|
||||||
"Can not queue at this time: fee insufficient to replace queued "
|
MAKE_ERROR(tecNO_AUTH, "Not authorized to hold asset."),
|
||||||
"transaction."}},
|
MAKE_ERROR(tecNO_LINE, "No such line."),
|
||||||
{telCAN_NOT_QUEUE_FULL,
|
MAKE_ERROR(tecINSUFF_FEE, "Insufficient balance to pay fee."),
|
||||||
{"telCAN_NOT_QUEUE_FULL",
|
MAKE_ERROR(tecFROZEN, "Asset is frozen."),
|
||||||
"Can not queue at this time: queue is full."}},
|
MAKE_ERROR(tecNO_TARGET, "Target account does not exist."),
|
||||||
|
MAKE_ERROR(tecNO_PERMISSION, "No permission to perform requested operation."),
|
||||||
|
MAKE_ERROR(tecNO_ENTRY, "No matching entry found."),
|
||||||
|
MAKE_ERROR(tecINSUFFICIENT_RESERVE, "Insufficient reserve to complete requested operation."),
|
||||||
|
MAKE_ERROR(tecNEED_MASTER_KEY, "The operation requires the use of the Master Key."),
|
||||||
|
MAKE_ERROR(tecDST_TAG_NEEDED, "A destination tag is required."),
|
||||||
|
MAKE_ERROR(tecINTERNAL, "An internal error has occurred during processing."),
|
||||||
|
MAKE_ERROR(tecCRYPTOCONDITION_ERROR, "Malformed, invalid, or mismatched conditional or fulfillment."),
|
||||||
|
MAKE_ERROR(tecINVARIANT_FAILED, "One or more invariants for the transaction were not satisfied."),
|
||||||
|
MAKE_ERROR(tecEXPIRED, "Expiration time is passed."),
|
||||||
|
MAKE_ERROR(tecDUPLICATE, "Ledger object already exists."),
|
||||||
|
MAKE_ERROR(tecKILLED, "FillOrKill offer killed."),
|
||||||
|
MAKE_ERROR(tecHAS_OBLIGATIONS, "The account cannot be deleted since it has obligations."),
|
||||||
|
MAKE_ERROR(tecTOO_SOON, "It is too early to attempt the requested operation. Please wait."),
|
||||||
|
|
||||||
{temMALFORMED, {"temMALFORMED", "Malformed transaction."}},
|
MAKE_ERROR(tefALREADY, "The exact transaction was already in this ledger."),
|
||||||
{temBAD_AMOUNT, {"temBAD_AMOUNT", "Can only send positive amounts."}},
|
MAKE_ERROR(tefBAD_ADD_AUTH, "Not authorized to add account."),
|
||||||
{temBAD_CURRENCY, {"temBAD_CURRENCY", "Malformed: Bad currency."}},
|
MAKE_ERROR(tefBAD_AUTH, "Transaction's public key is not authorized."),
|
||||||
{temBAD_EXPIRATION,
|
MAKE_ERROR(tefBAD_LEDGER, "Ledger in unexpected state."),
|
||||||
{"temBAD_EXPIRATION", "Malformed: Bad expiration."}},
|
MAKE_ERROR(tefBAD_QUORUM, "Signatures provided do not meet the quorum."),
|
||||||
{temBAD_FEE, {"temBAD_FEE", "Invalid fee, negative or not XRP."}},
|
MAKE_ERROR(tefBAD_SIGNATURE, "A signature is provided for a non-signer."),
|
||||||
{temBAD_ISSUER, {"temBAD_ISSUER", "Malformed: Bad issuer."}},
|
MAKE_ERROR(tefCREATED, "Can't add an already created account."),
|
||||||
{temBAD_LIMIT, {"temBAD_LIMIT", "Limits must be non-negative."}},
|
MAKE_ERROR(tefEXCEPTION, "Unexpected program state."),
|
||||||
{temBAD_OFFER, {"temBAD_OFFER", "Malformed: Bad offer."}},
|
MAKE_ERROR(tefFAILURE, "Failed to apply."),
|
||||||
{temBAD_PATH, {"temBAD_PATH", "Malformed: Bad path."}},
|
MAKE_ERROR(tefINTERNAL, "Internal error."),
|
||||||
{temBAD_PATH_LOOP, {"temBAD_PATH_LOOP", "Malformed: Loop in path."}},
|
MAKE_ERROR(tefMASTER_DISABLED, "Master key is disabled."),
|
||||||
{temBAD_QUORUM, {"temBAD_QUORUM", "Malformed: Quorum is unreachable."}},
|
MAKE_ERROR(tefMAX_LEDGER, "Ledger sequence too high."),
|
||||||
{temBAD_REGKEY,
|
MAKE_ERROR(tefNO_AUTH_REQUIRED, "Auth is not required."),
|
||||||
{"temBAD_REGKEY",
|
MAKE_ERROR(tefNOT_MULTI_SIGNING, "Account has no appropriate list of multi-signers."),
|
||||||
"Malformed: Regular key cannot be same as master key."}},
|
MAKE_ERROR(tefPAST_SEQ, "This sequence number has already passed."),
|
||||||
{temBAD_SEND_XRP_LIMIT,
|
MAKE_ERROR(tefWRONG_PRIOR, "This previous transaction does not match."),
|
||||||
{"temBAD_SEND_XRP_LIMIT",
|
MAKE_ERROR(tefBAD_AUTH_MASTER, "Auth for unclaimed account needs correct master key."),
|
||||||
"Malformed: Limit quality is not allowed for XRP to XRP."}},
|
MAKE_ERROR(tefINVARIANT_FAILED, "Fee claim violated invariants for the transaction."),
|
||||||
{temBAD_SEND_XRP_MAX,
|
MAKE_ERROR(tefTOO_BIG, "Transaction affects too many items."),
|
||||||
{"temBAD_SEND_XRP_MAX",
|
|
||||||
"Malformed: Send max is not allowed for XRP to XRP."}},
|
|
||||||
{temBAD_SEND_XRP_NO_DIRECT,
|
|
||||||
{"temBAD_SEND_XRP_NO_DIRECT",
|
|
||||||
"Malformed: No Ripple direct is not allowed for XRP to XRP."}},
|
|
||||||
{temBAD_SEND_XRP_PARTIAL,
|
|
||||||
{"temBAD_SEND_XRP_PARTIAL",
|
|
||||||
"Malformed: Partial payment is not allowed for XRP to XRP."}},
|
|
||||||
{temBAD_SEND_XRP_PATHS,
|
|
||||||
{"temBAD_SEND_XRP_PATHS",
|
|
||||||
"Malformed: Paths are not allowed for XRP to XRP."}},
|
|
||||||
{temBAD_SEQUENCE,
|
|
||||||
{"temBAD_SEQUENCE", "Malformed: Sequence is not in the past."}},
|
|
||||||
{temBAD_SIGNATURE, {"temBAD_SIGNATURE", "Malformed: Bad signature."}},
|
|
||||||
{temBAD_SIGNER,
|
|
||||||
{"temBAD_SIGNER",
|
|
||||||
"Malformed: No signer may duplicate account or other signers."}},
|
|
||||||
{temBAD_SRC_ACCOUNT,
|
|
||||||
{"temBAD_SRC_ACCOUNT", "Malformed: Bad source account."}},
|
|
||||||
{temBAD_TRANSFER_RATE,
|
|
||||||
{"temBAD_TRANSFER_RATE",
|
|
||||||
"Malformed: Transfer rate must be >= 1.0 and <= 2.0"}},
|
|
||||||
{temBAD_WEIGHT,
|
|
||||||
{"temBAD_WEIGHT", "Malformed: Weight must be a positive value."}},
|
|
||||||
{temDST_IS_SRC, {"temDST_IS_SRC", "Destination may not be source."}},
|
|
||||||
{temDST_NEEDED, {"temDST_NEEDED", "Destination not specified."}},
|
|
||||||
{temINVALID, {"temINVALID", "The transaction is ill-formed."}},
|
|
||||||
{temINVALID_FLAG,
|
|
||||||
{"temINVALID_FLAG", "The transaction has an invalid flag."}},
|
|
||||||
{temREDUNDANT, {"temREDUNDANT", "Sends same currency to self."}},
|
|
||||||
{temRIPPLE_EMPTY, {"temRIPPLE_EMPTY", "PathSet with no paths."}},
|
|
||||||
{temUNCERTAIN,
|
|
||||||
{"temUNCERTAIN", "In process of determining result. Never returned."}},
|
|
||||||
{temUNKNOWN,
|
|
||||||
{"temUNKNOWN",
|
|
||||||
"The transaction requires logic that is not implemented yet."}},
|
|
||||||
{temDISABLED,
|
|
||||||
{"temDISABLED",
|
|
||||||
"The transaction requires logic that is currently disabled."}},
|
|
||||||
{temBAD_TICK_SIZE,
|
|
||||||
{"temBAD_TICK_SIZE", "Malformed: Tick size out of range."}},
|
|
||||||
{temINVALID_ACCOUNT_ID,
|
|
||||||
{"temINVALID_ACCOUNT_ID",
|
|
||||||
"Malformed: A field contains an invalid account ID."}},
|
|
||||||
{temCANNOT_PREAUTH_SELF,
|
|
||||||
{"temCANNOT_PREAUTH_SELF",
|
|
||||||
"Malformed: An account may not preauthorize itself."}},
|
|
||||||
|
|
||||||
{terRETRY, {"terRETRY", "Retry transaction."}},
|
MAKE_ERROR(telLOCAL_ERROR, "Local failure."),
|
||||||
{terFUNDS_SPENT,
|
MAKE_ERROR(telBAD_DOMAIN, "Domain too long."),
|
||||||
{"terFUNDS_SPENT",
|
MAKE_ERROR(telBAD_PATH_COUNT, "Malformed: Too many paths."),
|
||||||
"Can't set password, password set funds already spent."}},
|
MAKE_ERROR(telBAD_PUBLIC_KEY, "Public key too long."),
|
||||||
{terINSUF_FEE_B, {"terINSUF_FEE_B", "Account balance can't pay fee."}},
|
MAKE_ERROR(telFAILED_PROCESSING, "Failed to correctly process transaction."),
|
||||||
{terLAST, {"terLAST", "Process last."}},
|
MAKE_ERROR(telINSUF_FEE_P, "Fee insufficient."),
|
||||||
{terNO_RIPPLE, {"terNO_RIPPLE", "Path does not permit rippling."}},
|
MAKE_ERROR(telNO_DST_PARTIAL, "Partial payment to create account not allowed."),
|
||||||
{terNO_ACCOUNT,
|
MAKE_ERROR(telCAN_NOT_QUEUE, "Can not queue at this time."),
|
||||||
{"terNO_ACCOUNT", "The source account does not exist."}},
|
MAKE_ERROR(telCAN_NOT_QUEUE_BALANCE, "Can not queue at this time: insufficient balance to pay all queued fees."),
|
||||||
{terNO_AUTH, {"terNO_AUTH", "Not authorized to hold IOUs."}},
|
MAKE_ERROR(telCAN_NOT_QUEUE_BLOCKS, "Can not queue at this time: would block later queued transaction(s)."),
|
||||||
{terNO_LINE, {"terNO_LINE", "No such line."}},
|
MAKE_ERROR(telCAN_NOT_QUEUE_BLOCKED, "Can not queue at this time: blocking transaction in queue."),
|
||||||
{terPRE_SEQ, {"terPRE_SEQ", "Missing/inapplicable prior transaction."}},
|
MAKE_ERROR(telCAN_NOT_QUEUE_FEE, "Can not queue at this time: fee insufficient to replace queued transaction."),
|
||||||
{terOWNERS, {"terOWNERS", "Non-zero owner count."}},
|
MAKE_ERROR(telCAN_NOT_QUEUE_FULL, "Can not queue at this time: queue is full."),
|
||||||
{terQUEUED, {"terQUEUED", "Held until escalated fee drops."}},
|
|
||||||
|
|
||||||
{tesSUCCESS,
|
MAKE_ERROR(temMALFORMED, "Malformed transaction."),
|
||||||
{"tesSUCCESS",
|
MAKE_ERROR(temBAD_AMOUNT, "Can only send positive amounts."),
|
||||||
"The transaction was applied. Only final in a validated ledger."}},
|
MAKE_ERROR(temBAD_CURRENCY, "Malformed: Bad currency."),
|
||||||
|
MAKE_ERROR(temBAD_EXPIRATION, "Malformed: Bad expiration."),
|
||||||
|
MAKE_ERROR(temBAD_FEE, "Invalid fee, negative or not XRP."),
|
||||||
|
MAKE_ERROR(temBAD_ISSUER, "Malformed: Bad issuer."),
|
||||||
|
MAKE_ERROR(temBAD_LIMIT, "Limits must be non-negative."),
|
||||||
|
MAKE_ERROR(temBAD_OFFER, "Malformed: Bad offer."),
|
||||||
|
MAKE_ERROR(temBAD_PATH, "Malformed: Bad path."),
|
||||||
|
MAKE_ERROR(temBAD_PATH_LOOP, "Malformed: Loop in path."),
|
||||||
|
MAKE_ERROR(temBAD_QUORUM, "Malformed: Quorum is unreachable."),
|
||||||
|
MAKE_ERROR(temBAD_REGKEY, "Malformed: Regular key cannot be same as master key."),
|
||||||
|
MAKE_ERROR(temBAD_SEND_XRP_LIMIT, "Malformed: Limit quality is not allowed for XRP to XRP."),
|
||||||
|
MAKE_ERROR(temBAD_SEND_XRP_MAX, "Malformed: Send max is not allowed for XRP to XRP."),
|
||||||
|
MAKE_ERROR(temBAD_SEND_XRP_NO_DIRECT, "Malformed: No Ripple direct is not allowed for XRP to XRP."),
|
||||||
|
MAKE_ERROR(temBAD_SEND_XRP_PARTIAL, "Malformed: Partial payment is not allowed for XRP to XRP."),
|
||||||
|
MAKE_ERROR(temBAD_SEND_XRP_PATHS, "Malformed: Paths are not allowed for XRP to XRP."),
|
||||||
|
MAKE_ERROR(temBAD_SEQUENCE, "Malformed: Sequence is not in the past."),
|
||||||
|
MAKE_ERROR(temBAD_SIGNATURE, "Malformed: Bad signature."),
|
||||||
|
MAKE_ERROR(temBAD_SIGNER, "Malformed: No signer may duplicate account or other signers."),
|
||||||
|
MAKE_ERROR(temBAD_SRC_ACCOUNT, "Malformed: Bad source account."),
|
||||||
|
MAKE_ERROR(temBAD_TRANSFER_RATE, "Malformed: Transfer rate must be >= 1.0 and <= 2.0"),
|
||||||
|
MAKE_ERROR(temBAD_WEIGHT, "Malformed: Weight must be a positive value."),
|
||||||
|
MAKE_ERROR(temDST_IS_SRC, "Destination may not be source."),
|
||||||
|
MAKE_ERROR(temDST_NEEDED, "Destination not specified."),
|
||||||
|
MAKE_ERROR(temINVALID, "The transaction is ill-formed."),
|
||||||
|
MAKE_ERROR(temINVALID_FLAG, "The transaction has an invalid flag."),
|
||||||
|
MAKE_ERROR(temREDUNDANT, "Sends same currency to self."),
|
||||||
|
MAKE_ERROR(temRIPPLE_EMPTY, "PathSet with no paths."),
|
||||||
|
MAKE_ERROR(temUNCERTAIN, "In process of determining result. Never returned."),
|
||||||
|
MAKE_ERROR(temUNKNOWN, "The transaction requires logic that is not implemented yet."),
|
||||||
|
MAKE_ERROR(temDISABLED, "The transaction requires logic that is currently disabled."),
|
||||||
|
MAKE_ERROR(temBAD_TICK_SIZE, "Malformed: Tick size out of range."),
|
||||||
|
MAKE_ERROR(temINVALID_ACCOUNT_ID, "Malformed: A field contains an invalid account ID."),
|
||||||
|
MAKE_ERROR(temCANNOT_PREAUTH_SELF, "Malformed: An account may not preauthorize itself."),
|
||||||
|
|
||||||
|
MAKE_ERROR(terRETRY, "Retry transaction."),
|
||||||
|
MAKE_ERROR(terFUNDS_SPENT, "DEPRECATED."),
|
||||||
|
MAKE_ERROR(terINSUF_FEE_B, "Account balance can't pay fee."),
|
||||||
|
MAKE_ERROR(terLAST, "DEPRECATED."),
|
||||||
|
MAKE_ERROR(terNO_RIPPLE, "Path does not permit rippling."),
|
||||||
|
MAKE_ERROR(terNO_ACCOUNT, "The source account does not exist."),
|
||||||
|
MAKE_ERROR(terNO_AUTH, "Not authorized to hold IOUs."),
|
||||||
|
MAKE_ERROR(terNO_LINE, "No such line."),
|
||||||
|
MAKE_ERROR(terPRE_SEQ, "Missing/inapplicable prior transaction."),
|
||||||
|
MAKE_ERROR(terOWNERS, "Non-zero owner count."),
|
||||||
|
MAKE_ERROR(terQUEUED, "Held until escalated fee drops."),
|
||||||
|
|
||||||
|
MAKE_ERROR(tesSUCCESS, "The transaction was applied. Only final in a validated ledger."),
|
||||||
};
|
};
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
|
#undef MAKE_ERROR
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user