gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-exchange] 125/152: taler_error_codes.h auto generated from gnunet


From: gnunet
Subject: [taler-exchange] 125/152: taler_error_codes.h auto generated from gnunet/gana.git as a submodule
Date: Sun, 05 Jul 2020 20:48:01 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository exchange.

commit acd8d318c024cc31381361f3593b7b1510795627
Author: Jonathan Buchanan <jonathan.russ.buchanan@gmail.com>
AuthorDate: Mon Jun 8 14:55:50 2020 -0400

    taler_error_codes.h auto generated from gnunet/gana.git as a submodule
---
 .gitignore                      |    1 +
 .gitmodules                     |    3 +
 bootstrap                       |    9 +-
 contrib/gana                    |    1 +
 src/include/taler_error_codes.h | 2754 ---------------------------------------
 5 files changed, 13 insertions(+), 2755 deletions(-)

diff --git a/.gitignore b/.gitignore
index 9ed74175..4b3e5a35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,6 +32,7 @@ GPATH
 GRTAGS
 GTAGS
 *.swp
+src/include/taler_error_codes.h
 src/lib/test_exchange_api
 doc/doxygen/doxygen_sqlite3.db
 src/auditor/taler-auditor-dbinit
diff --git a/.gitmodules b/.gitmodules
index de5e3305..af62a847 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -5,3 +5,6 @@
        path = doc/prebuilt
        url = https://git.taler.net/docs.git
        branch = prebuilt
+[submodule "contrib/gana"]
+       path = contrib/gana
+       url = https://gnunet.org/git/gana.git
diff --git a/bootstrap b/bootstrap
index 44f929c6..a25549b7 100755
--- a/bootstrap
+++ b/bootstrap
@@ -5,7 +5,14 @@ if ! git --version >/dev/null; then
   exit 1
 fi
 
-git submodule update --init
+#git submodule update --init
+
+# Generate taler-error-codes.h in gana and copy it to
+# src/include/taler_error_codes.h
+cd contrib/gana/gnu-taler-error-codes
+make
+cd ../../..
+cp contrib/gana/gnu-taler-error-codes/taler-error-codes.h 
src/include/taler_error_codes.h
 
 # This is more portable than `which' but comes with
 # the caveat of not(?) properly working on busybox's ash:
diff --git a/contrib/gana b/contrib/gana
new file mode 160000
index 00000000..30d83deb
--- /dev/null
+++ b/contrib/gana
@@ -0,0 +1 @@
+Subproject commit 30d83deb42b0ad54154214ecd916a167c324c9d6
diff --git a/src/include/taler_error_codes.h b/src/include/taler_error_codes.h
deleted file mode 100644
index 87feea2d..00000000
--- a/src/include/taler_error_codes.h
+++ /dev/null
@@ -1,2754 +0,0 @@
-/*
-  This file is part of TALER
-  Copyright (C) 2016, 2017, 2019 Taler Systems SA
-
-  TALER is free software; you can redistribute it and/or modify it under the
-  terms of the GNU General Public License as published by the Free Software
-  Foundation; either version 3, or (at your option) any later version.
-
-  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License along with
-  TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
-*/
-
-/**
- * @file taler_error_codes.h
- * @brief error codes returned by GNU Taler
- *
- * This file defines constants for error codes returned
- * in Taler APIs.  We use codes above 1000 to avoid any
- * confusing with HTTP status codes.  All constants have the
- * shared prefix "TALER_EC_" to indicate that they are error
- * codes.
- *
- * THIS FILE IS AUTO-GENERATED, DO NOT MODIFY!
- * If you want to add an error code, please add it in the
- * taler-util.git repository.  Instructions
- * for this are in the README in taler-util.git.
- */
-#ifndef TALER_ERROR_CODES_H
-#define TALER_ERROR_CODES_H
-
-/**
- * Enumeration with all possible Taler error codes.
- */
-enum TALER_ErrorCode
-{
-
-  /**
-   * Special code to indicate no error (or no "code" present).
-   */
-  TALER_EC_NONE = 0,
-
-  /**
-   * Special code to indicate that a non-integer error code was returned
-   * in the JSON response.
-   */
-  TALER_EC_INVALID = 1,
-
-  /**
-   * The response we got from the server was not even in JSON format.
-   */
-  TALER_EC_INVALID_RESPONSE = 2,
-
-  /**
-   * Generic implementation error: this function was not yet
-   * implemented.
-   */
-  TALER_EC_NOT_IMPLEMENTED = 3,
-
-  /**
-   * Exchange is badly configured and thus cannot operate.
-   */
-  TALER_EC_EXCHANGE_BAD_CONFIGURATION = 4,
-
-  /**
-   * Internal assertion error.
-   */
-  TALER_EC_INTERNAL_INVARIANT_FAILURE = 5,
-
-  /**
-   * Operation timed out.
-   */
-  TALER_EC_TIMEOUT = 6,
-
-  /**
-   * Exchange failed to allocate memory for building JSON reply.
-   */
-  TALER_EC_JSON_ALLOCATION_FAILURE = 7,
-
-  /**
-   * HTTP method invalid for this URL.
-   */
-  TALER_EC_METHOD_INVALID = 8,
-
-  /**
-   * Operation specified invalid for this URL (resulting in a "NOT
-   * FOUND" for the overall response).
-   */
-  TALER_EC_OPERATION_INVALID = 9,
-
-  /**
-   * There is no endpoint defined for the URL provided by the client
-   * (returned together with a #MHD_HTTP_NOT_FOUND status code).
-   */
-  TALER_EC_ENDPOINT_UNKNOWN = 10,
-
-  /**
-   * The URI is longer than the longest URI the HTTP server is willing
-   * to parse. Returned together with an HTTP status code of
-   * #MHD_HTTP_URI_TOO_LONG.
-   */
-  TALER_EC_URI_TOO_LONG = 11,
-
-  /**
-   * The number of segments included in the URI does not match the
-   * number of segments expected by the endpoint. (returned together
-   * with a #MHD_HTTP_NOT_FOUND status code).
-   */
-  TALER_EC_WRONG_NUMBER_OF_SEGMENTS = 12,
-
-  /**
-   * The start and end-times in the wire fee structure leave a hole.
-   * This is not allowed. Generated as an error on the client-side.
-   */
-  TALER_EC_HOLE_IN_WIRE_FEE_STRUCTURE = 13,
-
-  /**
-   * The version string given does not follow the expected
-   * CURRENT:REVISION:AGE Format.  Generated as an error on the client
-   * side.
-   */
-  TALER_EC_VERSION_MALFORMED = 14,
-
-  /**
-   * The client-side experienced an internal failure. Generated as an
-   * error on the client side.
-   */
-  TALER_EC_CLIENT_INTERNAL_FAILURE = 15,
-
-  /**
-   * The exchange failed to even just initialize its connection to the
-   * database.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DB_SETUP_FAILED = 1001,
-
-  /**
-   * The exchange encountered an error event to just start the database
-   * transaction.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DB_START_FAILED = 1002,
-
-  /**
-   * The exchange encountered an error event to commit the database
-   * transaction (hard, unrecoverable error). This response is provided
-   * with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DB_COMMIT_FAILED_HARD = 1003,
-
-  /**
-   * The exchange encountered an error event to commit the database
-   * transaction, even after repeatedly retrying it there was always a
-   * conflicting transaction. (This indicates a repeated serialization
-   * error; should only happen if some client maliciously tries to
-   * create conflicting concurrent transactions.) This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DB_COMMIT_FAILED_ON_RETRY = 1004,
-
-  /**
-   * The exchange had insufficient memory to parse the request. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PARSER_OUT_OF_MEMORY = 1005,
-
-  /**
-   * The JSON in the client's request to the exchange was malformed.
-   * (Generic parse error). This response is provided with HTTP status
-   * code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_JSON_INVALID = 1006,
-
-  /**
-   * The JSON in the client's request to the exchange was malformed.
-   * Details about the location of the parse error are provided. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_JSON_INVALID_WITH_DETAILS = 1007,
-
-  /**
-   * A required parameter in the request to the exchange was missing.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PARAMETER_MISSING = 1008,
-
-  /**
-   * A parameter in the request to the exchange was malformed. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PARAMETER_MALFORMED = 1009,
-
-  /**
-   * The exchange failed to obtain the transaction history of the given
-   * coin from the database while generating an insufficient funds
-   * errors.  This can happen during /deposit or /recoup requests. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_COIN_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS = 1010,
-
-  /**
-   * Internal logic error.  Some server-side function failed that really
-   * should not. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_INTERNAL_LOGIC_ERROR = 1011,
-
-  /**
-   * The method specified in a payto:// URI is not one we expected.
-   */
-  TALER_EC_PAYTO_WRONG_METHOD = 1012,
-
-  /**
-   * The payto:// URI is malformed.
-   */
-  TALER_EC_PAYTO_MALFORMED = 1013,
-
-  /**
-   * We failed to update the database of known coins.
-   */
-  TALER_EC_DB_COIN_HISTORY_STORE_ERROR = 1014,
-
-  /**
-   * The public key of given to a /coins/ handler was malformed.
-   */
-  TALER_EC_COINS_INVALID_COIN_PUB = 1050,
-
-  /**
-   * The reserve key of given to a /reserves/ handler was malformed.
-   */
-  TALER_EC_RESERVES_INVALID_RESERVE_PUB = 1051,
-
-  /**
-   * The public key of given to a /transfers/ handler was malformed.
-   */
-  TALER_EC_TRANSFERS_INVALID_WTID = 1052,
-
-  /**
-   * The wire hash of given to a /deposits/ handler was malformed.
-   */
-  TALER_EC_DEPOSITS_INVALID_H_WIRE = 1053,
-
-  /**
-   * The merchant key of given to a /deposits/ handler was malformed.
-   */
-  TALER_EC_DEPOSITS_INVALID_MERCHANT_PUB = 1054,
-
-  /**
-   * The hash of the contract terms given to a /deposits/ handler was
-   * malformed.
-   */
-  TALER_EC_DEPOSITS_INVALID_H_CONTRACT_TERMS = 1055,
-
-  /**
-   * The coin public key of given to a /deposits/ handler was malformed.
-   */
-  TALER_EC_DEPOSITS_INVALID_COIN_PUB = 1056,
-
-  /**
-   * The body returned by the exchange for a /deposits/ request was
-   * malformed. Error created client-side.
-   */
-  TALER_EC_DEPOSITS_INVALID_BODY_BY_EXCHANGE = 1057,
-
-  /**
-   * The signature returned by the exchange in a /deposits/ request was
-   * malformed. Error created client-side.
-   */
-  TALER_EC_DEPOSITS_INVALID_SIGNATURE_BY_EXCHANGE = 1058,
-
-  /**
-   * The given reserve does not have sufficient funds to admit the
-   * requested withdraw operation at this time.  The response includes
-   * the current "balance" of the reserve as well as the transaction
-   * "history" that lead to this balance.  This response is provided
-   * with HTTP status code #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_WITHDRAW_INSUFFICIENT_FUNDS = 1100,
-
-  /**
-   * The exchange has no information about the "reserve_pub" that was
-   * given. This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_WITHDRAW_RESERVE_UNKNOWN = 1101,
-
-  /**
-   * The amount to withdraw together with the fee exceeds the numeric
-   * range for Taler amounts.  This is not a client failure, as the coin
-   * value and fees come from the exchange's configuration. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_AMOUNT_FEE_OVERFLOW = 1102,
-
-  /**
-   * All of the deposited amounts into this reserve total up to a value
-   * that is too big for the numeric range for Taler amounts. This is
-   * not a client failure, as the transaction history comes from the
-   * exchange's configuration.  This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_AMOUNT_DEPOSITS_OVERFLOW = 1103,
-
-  /**
-   * For one of the historic withdrawals from this reserve, the exchange
-   * could not find the denomination key. This is not a client failure,
-   * as the transaction history comes from the exchange's configuration.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_HISTORIC_DENOMINATION_KEY_NOT_FOUND = 1104,
-
-  /**
-   * All of the withdrawals from reserve total up to a value that is too
-   * big for the numeric range for Taler amounts. This is not a client
-   * failure, as the transaction history comes from the exchange's
-   * configuration.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_AMOUNT_WITHDRAWALS_OVERFLOW = 1105,
-
-  /**
-   * The exchange somehow knows about this reserve, but there seem to
-   * have been no wire transfers made.  This is not a client failure, as
-   * this is a database consistency issue of the exchange.  This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_RESERVE_WITHOUT_WIRE_TRANSFER = 1106,
-
-  /**
-   * The exchange failed to create the signature using the denomination
-   * key.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_SIGNATURE_FAILED = 1107,
-
-  /**
-   * The exchange failed to store the withdraw operation in its
-   * database.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_DB_STORE_ERROR = 1108,
-
-  /**
-   * The exchange failed to check against historic withdraw data from
-   * database (as part of ensuring the idempotency of the operation).
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_DB_FETCH_ERROR = 1109,
-
-  /**
-   * The exchange is not aware of the denomination key the wallet
-   * requested for the withdrawal. This response is provided with HTTP
-   * status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_WITHDRAW_DENOMINATION_KEY_NOT_FOUND = 1110,
-
-  /**
-   * The signature of the reserve is not valid.  This response is
-   * provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_WITHDRAW_RESERVE_SIGNATURE_INVALID = 1111,
-
-  /**
-   * When computing the reserve history, we ended up with a negative
-   * overall balance, which should be impossible. This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS = 1112,
-
-  /**
-   * When computing the reserve history, we ended up with a negative
-   * overall balance, which should be impossible. This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_RESERVE_HISTORY_IMPOSSIBLE = 1113,
-
-  /**
-   * Validity period of the coin to be withdrawn is in the future.
-   * Returned with an HTTP status of #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_WITHDRAW_VALIDITY_IN_FUTURE = 1114,
-
-  /**
-   * Withdraw period of the coin to be withdrawn is in the past.
-   * Returned with an HTTP status of #MHD_HTTP_GONE.
-   */
-  TALER_EC_WITHDRAW_VALIDITY_IN_PAST = 1115,
-
-  /**
-   * Withdraw period of the coin to be withdrawn is in the past.
-   * Returned with an HTTP status of #MHD_HTTP_GONE.
-   */
-  TALER_EC_DENOMINATION_KEY_LOST = 1116,
-
-  /**
-   * The exchange's database entry with the reserve balance summary is
-   * inconsistent with its own history of the reserve. Returned with an
-   * HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_WITHDRAW_RESERVE_BALANCE_CORRUPT = 1117,
-
-  /**
-   * The exchange responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_WITHDRAW_REPLY_MALFORMED = 1118,
-
-  /**
-   * The client failed to unblind the blind signature. This error is not
-   * used in the protocol but created client-side.
-   */
-  TALER_EC_WITHDRAW_UNBLIND_FAILURE = 1119,
-
-  /**
-   * The exchange failed to obtain the transaction history of the given
-   * reserve from the database. This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_RESERVE_STATUS_DB_ERROR = 1150,
-
-  /**
-   * The reserve status was requested using a unknown key, to be
-   * returned with 404 Not Found.
-   */
-  TALER_EC_RESERVE_STATUS_UNKNOWN = 1151,
-
-  /**
-   * The exchange responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_RESERVE_STATUS_REPLY_MALFORMED = 1152,
-
-  /**
-   * The respective coin did not have sufficient residual value for the
-   * /deposit operation (i.e. due to double spending). The "history" in
-   * the respose provides the transaction history of the coin proving
-   * this fact.  This response is provided with HTTP status code
-   * #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_DEPOSIT_INSUFFICIENT_FUNDS = 1200,
-
-  /**
-   * The exchange failed to obtain the transaction history of the given
-   * coin from the database (this does not happen merely because the
-   * coin is seen by the exchange for the first time). This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSIT_HISTORY_DB_ERROR = 1201,
-
-  /**
-   * The exchange failed to store the /depost information in the
-   * database.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSIT_STORE_DB_ERROR = 1202,
-
-  /**
-   * The exchange database is unaware of the denomination key that
-   * signed the coin (however, the exchange process is; this is not
-   * supposed to happen; it can happen if someone decides to purge the
-   * DB behind the back of the exchange process).  Hence the deposit is
-   * being refused.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSIT_DB_DENOMINATION_KEY_UNKNOWN = 1203,
-
-  /**
-   * The exchange was trying to lookup the denomination key for the
-   * purpose of a DEPOSIT operation. However, the denomination key is
-   * unavailable for that purpose. This can be because it is entirely
-   * unknown to the exchange or not in the validity period for the
-   * deposit operation.  Hence the deposit is being refused.  This
-   * response is provided with HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_DEPOSIT_DENOMINATION_KEY_UNKNOWN = 1204,
-
-  /**
-   * The signature made by the coin over the deposit permission is not
-   * valid.  This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_COIN_SIGNATURE_INVALID = 1205,
-
-  /**
-   * The signature of the denomination key over the coin is not valid.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_DENOMINATION_SIGNATURE_INVALID = 1206,
-
-  /**
-   * The stated value of the coin after the deposit fee is subtracted
-   * would be negative.  This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_NEGATIVE_VALUE_AFTER_FEE = 1207,
-
-  /**
-   * The stated refund deadline is after the wire deadline. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_REFUND_DEADLINE_AFTER_WIRE_DEADLINE = 1208,
-
-  /**
-   * The exchange does not recognize the validity of or support the
-   * given wire format type. This response is provided with HTTP status
-   * code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_TYPE = 1209,
-
-  /**
-   * The exchange failed to canonicalize and hash the given wire format.
-   * For example, the merchant failed to provide the "salt" or a valid
-   * payto:// URI in the wire details.  Note that while the exchange
-   * will do some basic sanity checking on the wire details, it cannot
-   * warrant that the banking system will ultimately be able to route to
-   * the specified address, even if this check passed. This response is
-   * provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_JSON = 1210,
-
-  /**
-   * The hash of the given wire address does not match the hash
-   * specified in the proposal data.  This response is provided with
-   * HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_CONTRACT_HASH_CONFLICT = 1211,
-
-  /**
-   * The exchange detected that the given account number is invalid for
-   * the selected wire format type.  This response is provided with HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_ACCOUNT_NUMBER = 1213,
-
-  /**
-   * Timestamp included in deposit permission is intolerably far off
-   * with respect to the clock of the exchange.
-   */
-  TALER_EC_DEPOSIT_INVALID_TIMESTAMP = 1218,
-
-  /**
-   * Validity period of the denomination key is in the future.  Returned
-   * with an HTTP status of #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_DEPOSIT_DENOMINATION_VALIDITY_IN_FUTURE = 1219,
-
-  /**
-   * Denomination key of the coin is past the deposit deadline.
-   * Returned with an HTTP status of #MHD_HTTP_GONE.
-   */
-  TALER_EC_DEPOSIT_DENOMINATION_EXPIRED = 1220,
-
-  /**
-   * The signature provided by the exchange is not valid. Error created
-   * client-side.
-   */
-  TALER_EC_DEPOSIT_INVALID_SIGNATURE_BY_EXCHANGE = 1221,
-
-  /**
-   * The currency specified for the deposit is different from the
-   * currency of the coin.  This response is provided with HTTP status
-   * code #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_DEPOSIT_CURRENCY_MISMATCH = 1222,
-
-  /**
-   * The respective coin did not have sufficient residual value for the
-   * /refresh/melt operation.  The "history" in this response provdes
-   * the "residual_value" of the coin, which may be less than its
-   * "original_value".  This response is provided with HTTP status code
-   * #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_MELT_INSUFFICIENT_FUNDS = 1300,
-
-  /**
-   * The respective coin did not have sufficient residual value for the
-   * /refresh/melt operation.  The "history" in this response provdes
-   * the "residual_value" of the coin, which may be less than its
-   * "original_value".  This response is provided with HTTP status code
-   * #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_MELT_DENOMINATION_KEY_NOT_FOUND = 1301,
-
-  /**
-   * The exchange had an internal error reconstructing the transaction
-   * history of the coin that was being melted. This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_MELT_COIN_HISTORY_COMPUTATION_FAILED = 1302,
-
-  /**
-   * The exchange failed to check against historic melt data from
-   * database (as part of ensuring the idempotency of the operation).
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_MELT_DB_FETCH_ERROR = 1303,
-
-  /**
-   * The exchange failed to store session data in the database. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_MELT_DB_STORE_SESSION_ERROR = 1304,
-
-  /**
-   * The exchange encountered melt fees exceeding the melted coin's
-   * contribution.  This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_MELT_FEES_EXCEED_CONTRIBUTION = 1305,
-
-  /**
-   * The denomination key signature on the melted coin is invalid. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_MELT_DENOMINATION_SIGNATURE_INVALID = 1306,
-
-  /**
-   * The signature made with the coin to be melted is invalid. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_MELT_COIN_SIGNATURE_INVALID = 1307,
-
-  /**
-   * The exchange failed to obtain the transaction history of the given
-   * coin from the database while generating an insufficient funds
-   * errors. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_MELT_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS = 1308,
-
-  /**
-   * The denomination of the given coin has past its expiration date and
-   * it is also not a valid zombie (that is, was not refreshed with the
-   * fresh coin being subjected to recoup).
-   */
-  TALER_EC_MELT_COIN_EXPIRED_NO_ZOMBIE = 1309,
-
-  /**
-   * The signature returned by the exchange in a melt request was
-   * malformed. Error created client-side.
-   */
-  TALER_EC_MELT_INVALID_SIGNATURE_BY_EXCHANGE = 1310,
-
-  /**
-   * The currency specified for the melt amount is different from the
-   * currency of the coin.  This response is provided with HTTP status
-   * code #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_MELT_CURRENCY_MISMATCH = 1311,
-
-  /**
-   * The exchange is unaware of the denomination key that was used to
-   * sign the melted zombie coin.  This response is provided with HTTP
-   * status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_REFRESH_RECOUP_DENOMINATION_KEY_NOT_FOUND = 1351,
-
-  /**
-   * Validity period of the denomination key is in the future.  Returned
-   * with an HTTP status of #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_REFRESH_RECOUP_DENOMINATION_VALIDITY_IN_FUTURE = 1352,
-
-  /**
-   * Denomination key of the coin is past the deposit deadline.
-   * Returned with an HTTP status of #MHD_HTTP_GONE.
-   */
-  TALER_EC_REFRESH_RECOUP_DENOMINATION_EXPIRED = 1353,
-
-  /**
-   * Denomination key of the coin is past the deposit deadline.
-   * Returned with an HTTP status of #MHD_HTTP_GONE.
-   */
-  TALER_EC_REFRESH_ZOMBIE_DENOMINATION_EXPIRED = 1354,
-
-  /**
-   * The provided transfer keys do not match up with the original
-   * commitment.  Information about the original commitment is included
-   * in the response.  This response is provided with HTTP status code
-   * #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_REVEAL_COMMITMENT_VIOLATION = 1370,
-
-  /**
-   * Failed to produce the blinded signatures over the coins to be
-   * returned. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REVEAL_SIGNING_ERROR = 1371,
-
-  /**
-   * The exchange is unaware of the refresh session specified in the
-   * request. This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_SESSION_UNKNOWN = 1372,
-
-  /**
-   * The exchange failed to retrieve valid session data from the
-   * database. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REVEAL_DB_FETCH_SESSION_ERROR = 1373,
-
-  /**
-   * The exchange failed to retrieve previously revealed data from the
-   * database.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REVEAL_DB_FETCH_REVEAL_ERROR = 1374,
-
-  /**
-   * The exchange failed to retrieve commitment data from the database.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REVEAL_DB_COMMIT_ERROR = 1375,
-
-  /**
-   * The size of the cut-and-choose dimension of the private transfer
-   * keys request does not match #TALER_CNC_KAPPA - 1. This response is
-   * provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_CNC_TRANSFER_ARRAY_SIZE_INVALID = 1376,
-
-  /**
-   * The number of coins to be created in refresh exceeds the limits of
-   * the exchange. private transfer keys request does not match
-   * #TALER_CNC_KAPPA - 1. This response is provided with HTTP status
-   * code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_NEW_DENOMS_ARRAY_SIZE_EXCESSIVE = 1377,
-
-  /**
-   * The number of envelopes given does not match the number of
-   * denomination keys given. This response is provided with HTTP status
-   * code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_NEW_DENOMS_ARRAY_SIZE_MISMATCH = 1378,
-
-  /**
-   * The exchange encountered a numeric overflow totaling up the cost
-   * for the refresh operation.  This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REVEAL_COST_CALCULATION_OVERFLOW = 1379,
-
-  /**
-   * The exchange's cost calculation shows that the melt amount is below
-   * the costs of the transaction.  This response is provided with HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_AMOUNT_INSUFFICIENT = 1380,
-
-  /**
-   * The exchange is unaware of the denomination key that was requested
-   * for one of the fresh coins.  This response is provided with HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_FRESH_DENOMINATION_KEY_NOT_FOUND = 1381,
-
-  /**
-   * The signature made with the coin over the link data is invalid.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REVEAL_LINK_SIGNATURE_INVALID = 1382,
-
-  /**
-   * The exchange failed to generate the signature as it could not find
-   * the signing key for the denomination. This response is provided
-   * with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REVEAL_KEYS_MISSING = 1383,
-
-  /**
-   * The refresh session hash given to a /refreshes/ handler was
-   * malformed.
-   */
-  TALER_EC_REVEAL_INVALID_RCH = 1384,
-
-  /**
-   * The exchange responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_REVEAL_REPLY_MALFORMED = 1385,
-
-  /**
-   * The coin specified in the link request is unknown to the exchange.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_LINK_COIN_UNKNOWN = 1400,
-
-  /**
-   * The exchange responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_LINK_REPLY_MALFORMED = 1401,
-
-  /**
-   * The exchange knows literally nothing about the coin we were asked
-   * to refund. But without a transaction history, we cannot issue a
-   * refund.  This is kind-of OK, the owner should just refresh it
-   * directly without executing the refund.  This response is provided
-   * with HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_REFUND_COIN_NOT_FOUND = 1500,
-
-  /**
-   * We could not process the refund request as the coin's transaction
-   * history does not permit the requested refund at this time.  The
-   * "history" in the response proves this.  This response is provided
-   * with HTTP status code #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_REFUND_CONFLICT = 1501,
-
-  /**
-   * The exchange knows about the coin we were asked to refund, but not
-   * about the specific /deposit operation.  Hence, we cannot issue a
-   * refund (as we do not know if this merchant public key is authorized
-   * to do a refund).  This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_REFUND_DEPOSIT_NOT_FOUND = 1503,
-
-  /**
-   * The currency specified for the refund is different from the
-   * currency of the coin.  This response is provided with HTTP status
-   * code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REFUND_CURRENCY_MISMATCH = 1504,
-
-  /**
-   * When we tried to check if we already paid out the coin, the
-   * exchange's database suddenly disagreed with data it previously
-   * provided (internal inconsistency). This response is provided with
-   * HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REFUND_DB_INCONSISTENT = 1505,
-
-  /**
-   * The exchange can no longer refund the customer/coin as the money
-   * was already transferred (paid out) to the merchant. (It should be
-   * past the refund deadline.) This response is provided with HTTP
-   * status code #MHD_HTTP_GONE.
-   */
-  TALER_EC_REFUND_MERCHANT_ALREADY_PAID = 1506,
-
-  /**
-   * The amount the exchange was asked to refund exceeds (with fees) the
-   * total amount of the deposit (including fees). This response is
-   * provided with HTTP status code #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_REFUND_INSUFFICIENT_FUNDS = 1507,
-
-  /**
-   * The exchange failed to recover information about the denomination
-   * key of the refunded coin (even though it recognizes the key).
-   * Hence it could not check the fee strucutre. This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REFUND_DENOMINATION_KEY_NOT_FOUND = 1508,
-
-  /**
-   * The refund fee specified for the request is lower than the refund
-   * fee charged by the exchange for the given denomination key of the
-   * refunded coin. This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REFUND_FEE_TOO_LOW = 1509,
-
-  /**
-   * The exchange failed to store the refund information to its
-   * database. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REFUND_STORE_DB_ERROR = 1510,
-
-  /**
-   * The refund fee is specified in a different currency than the refund
-   * amount. This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REFUND_FEE_CURRENCY_MISMATCH = 1511,
-
-  /**
-   * The refunded amount is smaller than the refund fee, which would
-   * result in a negative refund. This response is provided with HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REFUND_FEE_ABOVE_AMOUNT = 1512,
-
-  /**
-   * The signature of the merchant is invalid. This response is provided
-   * with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_REFUND_MERCHANT_SIGNATURE_INVALID = 1513,
-
-  /**
-   * Merchant backend failed to create the refund confirmation
-   * signature. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_REFUND_MERCHANT_SIGNING_FAILED = 1514,
-
-  /**
-   * The signature returned by the exchange in a refund request was
-   * malformed. Error created client-side.
-   */
-  TALER_EC_REFUND_INVALID_SIGNATURE_BY_EXCHANGE = 1515,
-
-  /**
-   * The wire format specified in the "sender_account_details" is not
-   * understood or not supported by this exchange. Returned with an HTTP
-   * status code of #MHD_HTTP_NOT_FOUND. (As we did not find an
-   * interpretation of the wire format.)
-   */
-  TALER_EC_ADMIN_ADD_INCOMING_WIREFORMAT_UNSUPPORTED = 1600,
-
-  /**
-   * The currency specified in the "amount" parameter is not supported
-   * by this exhange.  Returned with an HTTP status code of
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_ADMIN_ADD_INCOMING_CURRENCY_UNSUPPORTED = 1601,
-
-  /**
-   * The exchange failed to store information about the incoming
-   * transfer in its database.  This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ADMIN_ADD_INCOMING_DB_STORE = 1602,
-
-  /**
-   * The exchange encountered an error (that is not about not finding
-   * the wire transfer) trying to lookup a wire transfer identifier in
-   * the database.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRANSFERS_GET_DB_FETCH_FAILED = 1700,
-
-  /**
-   * The exchange found internally inconsistent data when resolving a
-   * wire transfer identifier in the database.  This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRANSFERS_GET_DB_INCONSISTENT = 1701,
-
-  /**
-   * The exchange did not find information about the specified wire
-   * transfer identifier in the database.  This response is provided
-   * with HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_TRANSFERS_GET_WTID_NOT_FOUND = 1702,
-
-  /**
-   * The exchange did not find information about the wire transfer fees
-   * it charged. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRANSFERS_GET_WIRE_FEE_NOT_FOUND = 1703,
-
-  /**
-   * The exchange found a wire fee that was above the total transfer
-   * value (and thus could not have been charged). This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRANSFERS_GET_WIRE_FEE_INCONSISTENT = 1704,
-
-  /**
-   * The exchange responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_TRANSFERS_GET_REPLY_MALFORMED = 1705,
-
-  /**
-   * The exchange found internally inconsistent fee data when resolving
-   * a transaction in the database.  This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSITS_GET_DB_FEE_INCONSISTENT = 1800,
-
-  /**
-   * The exchange encountered an error (that is not about not finding
-   * the transaction) trying to lookup a transaction in the database.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSITS_GET_DB_FETCH_FAILED = 1801,
-
-  /**
-   * The exchange did not find information about the specified
-   * transaction in the database.  This response is provided with HTTP
-   * status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_DEPOSITS_GET_NOT_FOUND = 1802,
-
-  /**
-   * The exchange failed to identify the wire transfer of the
-   * transaction (or information about the plan that it was supposed to
-   * still happen in the future).  This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSITS_GET_WTID_RESOLUTION_ERROR = 1803,
-
-  /**
-   * The signature of the merchant is invalid. This response is provided
-   * with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_DEPOSITS_GET_MERCHANT_SIGNATURE_INVALID = 1804,
-
-  /**
-   * The given denomination key is not in the "recoup" set of the
-   * exchange right now.  This response is provided with an HTTP status
-   * code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_RECOUP_DENOMINATION_KEY_UNKNOWN = 1850,
-
-  /**
-   * The given coin signature is invalid for the request. This response
-   * is provided with an HTTP status code of #MHD_HTTP_FORBIDDEN.
-   */
-  TALER_EC_RECOUP_SIGNATURE_INVALID = 1851,
-
-  /**
-   * The signature of the denomination key over the coin is not valid.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_RECOUP_DENOMINATION_SIGNATURE_INVALID = 1852,
-
-  /**
-   * The exchange failed to access its own database about reserves. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_RECOUP_DB_FETCH_FAILED = 1853,
-
-  /**
-   * The exchange could not find the corresponding withdraw operation.
-   * The request is denied.  This response is provided with an HTTP
-   * status code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_RECOUP_WITHDRAW_NOT_FOUND = 1854,
-
-  /**
-   * The exchange obtained an internally inconsistent transaction
-   * history for the given coin. This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_RECOUP_HISTORY_DB_ERROR = 1855,
-
-  /**
-   * The exchange failed to store information about the recoup to be
-   * performed in the database. This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_RECOUP_DB_PUT_FAILED = 1856,
-
-  /**
-   * The coin's remaining balance is zero.  The request is denied. This
-   * response is provided with an HTTP status code of
-   * #MHD_HTTP_FORBIDDEN.
-   */
-  TALER_EC_RECOUP_COIN_BALANCE_ZERO = 1857,
-
-  /**
-   * The exchange failed to reproduce the coin's blinding. This response
-   * is provided with an HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_RECOUP_BLINDING_FAILED = 1858,
-
-  /**
-   * The coin's remaining balance is zero.  The request is denied. This
-   * response is provided with an HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR
-   */
-  TALER_EC_RECOUP_COIN_BALANCE_NEGATIVE = 1859,
-
-  /**
-   * Validity period of the denomination key is in the future.  Returned
-   * with an HTTP status of #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_RECOUP_DENOMINATION_VALIDITY_IN_FUTURE = 1860,
-
-  /**
-   * The exchange responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_RECOUP_REPLY_MALFORMED = 1861,
-
-  /**
-   * The "have" parameter was not a natural number. This response is
-   * provied with an HTTP status code of #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_KEYS_HAVE_NOT_NUMERIC = 1900,
-
-  /**
-   * We currently cannot find any keys. This response is provied with an
-   * HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_KEYS_MISSING = 1901,
-
-  /**
-   * This exchange does not allow clients to request /keys for times
-   * other than the current (exchange) time. This response is provied
-   * with an HTTP status code of #MHD_HTTP_FORBIDDEN.
-   */
-  TALER_EC_KEYS_TIMETRAVEL_FORBIDDEN = 1902,
-
-  /**
-   * The keys response was malformed. This error is generated client-
-   * side.
-   */
-  TALER_EC_KEYS_INVALID = 1903,
-
-  /**
-   * The backend could not find the merchant instance specified in the
-   * request.   This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_INSTANCE_UNKNOWN = 2000,
-
-  /**
-   * The backend lacks a wire transfer method configuration option for
-   * the given instance.
-   */
-  TALER_EC_PROPOSAL_INSTANCE_CONFIGURATION_LACKS_WIRE = 2002,
-
-  /**
-   * The merchant failed to provide a meaningful response to a /pay
-   * request.  This error is created client-side.
-   */
-  TALER_EC_PAY_MERCHANT_INVALID_RESPONSE = 2100,
-
-  /**
-   * The exchange failed to provide a meaningful response to a /deposit
-   * request.  This response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENCY, or #MHD_HTTP_CONFLICT in case the
-   * exchange reports #TALER_EC_DEPOSIT_INSUFFICIENT_FUNDS (aka double
-   * spending).
-   */
-  TALER_EC_PAY_EXCHANGE_FAILED = 2101,
-
-  /**
-   * The merchant failed to commit the exchanges' response to a /deposit
-   * request to its database.  This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_DB_STORE_PAY_ERROR = 2102,
-
-  /**
-   * The specified exchange is not supported/trusted by this merchant.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_PAY_EXCHANGE_REJECTED = 2103,
-
-  /**
-   * The denomination key used for payment is not listed among the
-   * denomination keys of the exchange.  This response is provided with
-   * HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PAY_DENOMINATION_KEY_NOT_FOUND = 2104,
-
-  /**
-   * The denomination key used for payment is not audited by an auditor
-   * approved by the merchant.  This response is provided with HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PAY_DENOMINATION_KEY_AUDITOR_FAILURE = 2105,
-
-  /**
-   * There was an integer overflow totaling up the amounts or deposit
-   * fees in the payment.  This response is provided with HTTP status
-   * code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_AMOUNT_OVERFLOW = 2106,
-
-  /**
-   * The deposit fees exceed the total value of the payment. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PAY_FEES_EXCEED_PAYMENT = 2107,
-
-  /**
-   * After considering deposit and wire fees, the payment is
-   * insufficient to satisfy the required amount for the contract.  The
-   * client should revisit the logic used to calculate fees it must
-   * cover. This response is provided with HTTP status code
-   * #MHD_HTTP_ACCEPTED.
-   */
-  TALER_EC_PAY_PAYMENT_INSUFFICIENT_DUE_TO_FEES = 2108,
-
-  /**
-   * Even if we do not consider deposit and wire fees, the payment is
-   * insufficient to satisfy the required amount for the contract.  This
-   * response is provided with HTTP status code #MHD_HTTP_ACCEPTED.
-   */
-  TALER_EC_PAY_PAYMENT_INSUFFICIENT = 2109,
-
-  /**
-   * The signature over the contract of one of the coins was invalid.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PAY_COIN_SIGNATURE_INVALID = 2110,
-
-  /**
-   * We failed to contact the exchange for the /pay request. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_REQUEST_TIMEOUT.
-   */
-  TALER_EC_PAY_EXCHANGE_TIMEOUT = 2111,
-
-  /**
-   * When we tried to find information about the exchange to issue the
-   * deposit, we failed.  This usually only happens if the merchant
-   * backend is somehow unable to get its own HTTP client logic to work.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_EXCHANGE_LOOKUP_FAILED = 2112,
-
-  /**
-   * The refund deadline in the contract is after the transfer deadline.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR as this should have been caught
-   * when the offer was first setup.
-   */
-  TALER_EC_PAY_REFUND_DEADLINE_PAST_WIRE_TRANSFER_DEADLINE = 2114,
-
-  /**
-   * The request fails to provide coins for the payment. This response
-   * is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PAY_COINS_ARRAY_EMPTY = 2115,
-
-  /**
-   * The merchant failed to fetch the contract terms from the merchant's
-   * database.  This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_DB_FETCH_PAY_ERROR = 2116,
-
-  /**
-   * The merchant failed to fetch the merchant's previous state with
-   * respect to transactions from its database.  This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_DB_FETCH_TRANSACTION_ERROR = 2117,
-
-  /**
-   * The merchant failed to store the merchant's state with respect to
-   * the transaction in its database.  This response is provided with
-   * HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_DB_STORE_TRANSACTION_ERROR = 2119,
-
-  /**
-   * The exchange failed to provide a valid response to the merchant's
-   * /keys request. This response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENDCY.
-   */
-  TALER_EC_PAY_EXCHANGE_KEYS_FAILURE = 2120,
-
-  /**
-   * The payment is too late, the offer has expired. This response is
-   * provided with HTTP status code #MHD_HTTP_GONE.
-   */
-  TALER_EC_PAY_OFFER_EXPIRED = 2121,
-
-  /**
-   * The "merchant" field is missing in the proposal data. This response
-   * is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PAY_MERCHANT_FIELD_MISSING = 2122,
-
-  /**
-   * Failed computing a hash code (likely server out-of-memory). This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_FAILED_COMPUTE_PROPOSAL_HASH = 2123,
-
-  /**
-   * Failed to locate merchant's account information matching the wire
-   * hash given in the proposal. This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_WIRE_HASH_UNKNOWN = 2124,
-
-  /**
-   * We got different currencies for the wire fee and the maximum wire
-   * fee.  This response is provided with HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_WIRE_FEE_CURRENCY_MISMATCH = 2125,
-
-  /**
-   * A unknown merchant public key was included in the payment.  That
-   * happens typically when the wallet sends the payment to the wrong
-   * merchant instance. This response is provided with an HTTP status
-   * code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_PAY_WRONG_INSTANCE = 2127,
-
-  /**
-   * The exchange failed to give us a response when we asked for /keys.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_PAY_EXCHANGE_HAS_NO_KEYS = 2128,
-
-  /**
-   * The deposit time for the denomination has expired. This response is
-   * provided with HTTP status code #MHD_HTTP_GONE.
-   */
-  TALER_EC_PAY_DENOMINATION_DEPOSIT_EXPIRED = 2129,
-
-  /**
-   * The proposal is not known to the backend. This response is provided
-   * with an HTTP status code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_PAY_PROPOSAL_NOT_FOUND = 2130,
-
-  /**
-   * The exchange of the deposited coin charges a wire fee that could
-   * not be added to the total (total amount too high).  This response
-   * is provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_EXCHANGE_WIRE_FEE_ADDITION_FAILED = 2131,
-
-  /**
-   * The contract was not fully paid because of refunds. Note that
-   * clients MAY treat this as paid if, for example, contracts must be
-   * executed despite of refunds. This response is provided with HTTP
-   * status code #MHD_HTTP_PAYMENT_REQUIRED.
-   */
-  TALER_EC_PAY_REFUNDED = 2132,
-
-  /**
-   * According to our database, we have refunded more than we were paid
-   * (which should not be possible). This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PAY_REFUNDS_EXCEED_PAYMENTS = 2133,
-
-  /**
-   * Legacy stuff. Remove me with protocol v1. This response is provided
-   * with HTTP status code #MHD_HTTP_PREREQUISTE.
-   */
-  TALER_EC_PAY_ABORT_REFUND_REFUSED_PAYMENT_COMPLETE = 2134,
-
-  /**
-   * The merchant failed to contact the exchange. This response is
-   * provided with HTTP status code of #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_ABORT_EXCHANGE_KEYS_FAILURE = 2150,
-
-  /**
-   * The merchant failed to send the exchange the refund request. This
-   * response is provided with HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ABORT_EXCHANGE_REFUND_FAILED = 2151,
-
-  /**
-   * The merchant failed to find the exchange to process the lookup.
-   * This response is provided with HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ABORT_EXCHANGE_LOOKUP_FAILED = 2152,
-
-  /**
-   * The merchant failed to store the abort request in its database.
-   * This response is provided with HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ABORT_DB_STORE_ABORT_ERROR = 2153,
-
-  /**
-   * The merchant failed to repeatedly serialize the transaction. This
-   * response is provided with HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ABORT_DB_STORE_TRANSACTION_ERROR = 2154,
-
-  /**
-   * The merchant failed in the lookup part of the transaction. This
-   * response is provided with HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ABORT_DB_FETCH_TRANSACTION_ERROR = 2155,
-
-  /**
-   * The merchant could not find the contract. This response is provided
-   * with HTTP status code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_ABORT_CONTRACT_NOT_FOUND = 2156,
-
-  /**
-   * The payment was already completed and thus cannot be aborted
-   * anymore. This response is provided with HTTP status code of
-   * #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_ABORT_REFUND_REFUSED_PAYMENT_COMPLETE = 2157,
-
-  /**
-   * The hash provided by the wallet does not match the order. This
-   * response is provided with HTTP status code of #MHD_HTTP_FORBIDDEN.
-   */
-  TALER_EC_ABORT_CONTRACT_HASH_MISSMATCH = 2158,
-
-  /**
-   * The array of coins cannot be empty. This response is provided with
-   * HTTP status code of #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_ABORT_COINS_ARRAY_EMPTY = 2159,
-
-  /**
-   * The merchant experienced a timeout processing the request. This
-   * response is provided with HTTP status code of
-   * #MHD_HTTP_REQUEST_TIMEOUT.
-   */
-  TALER_EC_ABORT_EXCHANGE_TIMEOUT = 2160,
-
-  /**
-   * Integer overflow with specified timestamp argument detected. This
-   * response is provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_HISTORY_TIMESTAMP_OVERFLOW = 2200,
-
-  /**
-   * Failed to retrieve history from merchant database. This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_HISTORY_DB_FETCH_ERROR = 2201,
-
-  /**
-   * The backend could not find the contract specified in the request.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_POLL_PAYMENT_CONTRACT_NOT_FOUND = 2250,
-
-  /**
-   * The response provided by the merchant backend was malformed. This
-   * error is created client-side.
-   */
-  TALER_EC_POLL_PAYMENT_REPLY_MALFORMED = 2251,
-
-  /**
-   * We failed to contact the exchange for the /track/transaction
-   * request.  This response is provided with HTTP status code
-   * #MHD_HTTP_SERVICE_UNAVAILABLE.
-   */
-  TALER_EC_TRACK_TRANSACTION_EXCHANGE_TIMEOUT = 2300,
-
-  /**
-   * We failed to get a valid /keys response from the exchange for the
-   * /track/transaction request.  This response is provided with HTTP
-   * status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TRACK_TRANSACTION_EXCHANGE_KEYS_FAILURE = 2301,
-
-  /**
-   * The backend could not find the transaction specified in the
-   * request.   This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_TRACK_TRANSACTION_TRANSACTION_UNKNOWN = 2302,
-
-  /**
-   * The backend had a database access error trying to retrieve
-   * transaction data from its database. The response is provided with
-   * HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRACK_TRANSACTION_DB_FETCH_TRANSACTION_ERROR = 2303,
-
-  /**
-   * The backend had a database access error trying to retrieve payment
-   * data from its database. The response is provided with HTTP status
-   * code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TRACK_TRANSACTION_DB_FETCH_PAYMENT_ERROR = 2304,
-
-  /**
-   * The backend found no applicable deposits in the database. This is
-   * odd, as we know about the transaction, but not about deposits we
-   * made for the transaction.  The response is provided with HTTP
-   * status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_TRACK_TRANSACTION_DB_NO_DEPOSITS_ERROR = 2305,
-
-  /**
-   * We failed to obtain a wire transfer identifier for one of the coins
-   * in the transaction.  The response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENCY if the exchange had a hard error, or
-   * #MHD_HTTP_ACCEPTED if the exchange signaled that the transfer was
-   * in progress.
-   */
-  TALER_EC_TRACK_TRANSACTION_COIN_TRACE_ERROR = 2306,
-
-  /**
-   * We failed to obtain the full wire transfer identifier for the
-   * transfer one of the coins was aggregated into. The response is
-   * provided with HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TRACK_TRANSACTION_WIRE_TRANSFER_TRACE_ERROR = 2307,
-
-  /**
-   * We got conflicting reports from the exhange with respect to which
-   * transfers are included in which aggregate. The response is provided
-   * with HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TRACK_TRANSACTION_CONFLICTING_REPORTS = 2308,
-
-  /**
-   * We did failed to retrieve information from our database. The
-   * response is provided with an HTTP status of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_GET_TRANSFERS_DB_FETCH_ERROR = 2350,
-
-  /**
-   * We failed to contact the exchange for the /track/transfer request.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_SERVICE_UNAVAILABLE.
-   */
-  TALER_EC_POST_TRANSFERS_EXCHANGE_TIMEOUT = 2400,
-
-  /**
-   * We failed to obtain an acceptable /keys response from the exchange
-   * for the /track/transfer request.  This response is provided with
-   * HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_POST_TRANSFERS_EXCHANGE_KEYS_FAILURE = 2401,
-
-  /**
-   * We failed to persist coin wire transfer information in our merchant
-   * database. The response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_POST_TRANSFERS_DB_STORE_COIN_ERROR = 2402,
-
-  /**
-   * We internally failed to execute the /track/transfer request. The
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_POST_TRANSFERS_REQUEST_ERROR = 2403,
-
-  /**
-   * We failed to persist wire transfer information in our merchant
-   * database. The response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_POST_TRANSFERS_DB_STORE_TRANSFER_ERROR = 2404,
-
-  /**
-   * The exchange returned an error from /track/transfer. The response
-   * is provided with HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_POST_TRANSFERS_EXCHANGE_ERROR = 2405,
-
-  /**
-   * We failed to fetch deposit information from our merchant database.
-   * The response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_POST_TRANSFERS_DB_FETCH_DEPOSIT_ERROR = 2406,
-
-  /**
-   * We encountered an internal logic error. The response is provided
-   * with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_POST_TRANSFERS_DB_INTERNAL_LOGIC_ERROR = 2407,
-
-  /**
-   * The exchange gave conflicting information about a coin which has
-   * been wire transferred. The response is provided with HTTP status
-   * code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_POST_TRANSFERS_CONFLICTING_REPORTS = 2408,
-
-  /**
-   * The merchant backend had problems in creating the JSON response.
-   */
-  TALER_EC_POST_TRANSFERS_JSON_RESPONSE_ERROR = 2409,
-
-  /**
-   * The exchange charged a different wire fee than what it originally
-   * advertised, and it is higher.  The response is provided with an
-   * HTTP status of #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_POST_TRANSFERS_JSON_BAD_WIRE_FEE = 2410,
-
-  /**
-   * We did not find the account that the transfer was made to. The
-   * response is provided with an HTTP status of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_POST_TRANSFERS_ACCOUNT_NOT_FOUND = 2411,
-
-  /**
-   * We did failed to store information in our database. The response is
-   * provided with an HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_POST_TRANSFERS_DB_STORE_ERROR = 2412,
-
-  /**
-   * We did failed to retrieve information from our database. The
-   * response is provided with an HTTP status of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_POST_TRANSFERS_DB_LOOKUP_ERROR = 2413,
-
-  /**
-   * The merchant backend cannot create an instance under the given
-   * identifier as one already exists. Use PATCH to modify the existing
-   * entry.  The response is provied with an HTTP status of
-   * #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_POST_INSTANCES_ALREADY_EXISTS = 2450,
-
-  /**
-   * The merchant backend cannot create an instance because the
-   * specified bank accounts are somehow invalid. The response is
-   * provied with an HTTP status of #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_POST_INSTANCES_BAD_PAYTO_URIS = 2451,
-
-  /**
-   * The merchant backend cannot create an instance because it failed to
-   * start the database transaction. The response is provied with an
-   * HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_POST_INSTANCES_DB_START_ERROR = 2452,
-
-  /**
-   * The merchant backend cannot create an instance because it failed to
-   * commit the database transaction. The response is provied with an
-   * HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_POST_INSTANCES_DB_COMMIT_ERROR = 2453,
-
-  /**
-   * The merchant backend cannot delete an instance because it failed to
-   * commit the database transaction. The response is provied with an
-   * HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DELETE_INSTANCES_ID_DB_HARD_FAILURE = 2454,
-
-  /**
-   * The merchant backend cannot delete the data because it already does
-   * not exist. The response is provied with an HTTP status of
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_DELETE_INSTANCES_ID_NO_SUCH_INSTANCE = 2455,
-
-  /**
-   * The merchant backend cannot update an instance because the
-   * specified bank accounts are somehow invalid. The response is
-   * provied with an HTTP status of #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PATCH_INSTANCES_BAD_PAYTO_URIS = 2456,
-
-  /**
-   * The merchant backend cannot patch an instance because it failed to
-   * start the database transaction. The response is provied with an
-   * HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PATCH_INSTANCES_DB_START_ERROR = 2457,
-
-  /**
-   * The merchant backend cannot patch an instance because it failed to
-   * commit the database transaction. The response is provied with an
-   * HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PATCH_INSTANCES_DB_COMMIT_ERROR = 2458,
-
-  /**
-   * The hash provided in the request of /map/in does not match the
-   * contract sent alongside in the same request.
-   */
-  TALER_EC_MAP_IN_UNMATCHED_HASH = 2500,
-
-  /**
-   * The backend encountered an error while trying to store the
-   * h_contract_terms into the database. The response is provided with
-   * HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PROPOSAL_STORE_DB_ERROR = 2501,
-
-  /**
-   * The backend encountered an error while trying to retrieve the
-   * proposal data from database.  Likely to be an internal error. The
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PROPOSAL_LOOKUP_DB_ERROR = 2502,
-
-  /**
-   * The proposal being looked up is not found on this merchant.
-   * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND
-   */
-  TALER_EC_PROPOSAL_LOOKUP_NOT_FOUND = 2503,
-
-  /**
-   * The proposal had no timestamp and the backend failed to obtain the
-   * local time. Likely to be an internal error. The response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PROPOSAL_NO_LOCALTIME = 2504,
-
-  /**
-   * The order provided to the backend could not be parsed, some
-   * required fields were missing or ill-formed. Returned with an HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PROPOSAL_ORDER_PARSE_ERROR = 2505,
-
-  /**
-   * The backend encountered an error while trying to find the existing
-   * proposal in the database. The response is provided with HTTP status
-   * code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PROPOSAL_STORE_DB_ERROR_HARD = 2506,
-
-  /**
-   * The backend encountered an error while trying to find the existing
-   * proposal in the database. The response is provided with HTTP status
-   * code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PROPOSAL_STORE_DB_ERROR_SOFT = 2507,
-
-  /**
-   * The backend encountered an error: the proposal already exists. The
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PROPOSAL_STORE_DB_ERROR_ALREADY_EXISTS = 2508,
-
-  /**
-   * The order provided to the backend uses an amount in a currency that
-   * does not match the backend's configuration. Returned with HTTP
-   * status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_PROPOSAL_ORDER_BAD_CURRENCY = 2509,
-
-  /**
-   * The response provided by the merchant backend was malformed. This
-   * error is created client-side.
-   */
-  TALER_EC_PROPOSAL_REPLY_MALFORMED = 2510,
-
-  /**
-   * The order provided to the backend could not be deleted, it is not
-   * known. Returned with an HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_ORDERS_DELETE_NO_SUCH_ORDER = 2511,
-
-  /**
-   * The order provided to the backend could not be deleted, our offer
-   * is still valid and awaiting payment. Returned with an HTTP status
-   * code #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_ORDERS_DELETE_AWAITING_PAYMENT = 2512,
-
-  /**
-   * The order provided to the backend could not be deleted, due to a
-   * database error. Returned with an HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ORDERS_DELETE_DB_HARD_FAILURE = 2513,
-
-  /**
-   * The order provided to the backend could not be completed, due to a
-   * database error trying to fetch product inventory data. Returned
-   * with an HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ORDERS_LOOKUP_PRODUCT_DB_HARD_FAILURE = 2514,
-
-  /**
-   * The order provided to the backend could not be completed, due to a
-   * database serialization error (which should be impossible) trying to
-   * fetch product inventory data. Returned with an HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ORDERS_LOOKUP_PRODUCT_DB_SOFT_FAILURE = 2515,
-
-  /**
-   * The order provided to the backend could not be completed, because a
-   * product to be completed via inventory data is not actually in our
-   * inventory. Returned with an HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_ORDERS_LOOKUP_PRODUCT_NOT_FOUND = 2516,
-
-  /**
-   * We could not obtain a list of all orders because of a database
-   * failure. Returned with an HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ORDERS_GET_DB_LOOKUP_ERROR = 2517,
-
-  /**
-   * We could not claim the order because of a database failure.
-   * Returned with an HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ORDERS_CLAIM_HARD_DB_ERROR = 2518,
-
-  /**
-   * We could not claim the order because of a database serialization
-   * failure. Returned with an HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_ORDERS_CLAIM_SOFT_DB_ERROR = 2519,
-
-  /**
-   * We could not claim the order because the backend is unaware of it.
-   * Returned with an HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_ORDERS_CLAIM_NOT_FOUND = 2520,
-
-  /**
-   * We could not claim the order because someone else claimed it first.
-   * Returned with an HTTP status code #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_ORDERS_ALREADY_CLAIMED = 2521,
-
-  /**
-   * The merchant backend failed to lookup the products. The response is
-   * provied with an HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_GET_PRODUCTS_DB_LOOKUP_ERROR = 2550,
-
-  /**
-   * The merchant backend failed to start the transaction. The response
-   * is provied with an HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PRODUCTS_POST_DB_START_ERROR = 2551,
-
-  /**
-   * The product ID exists. The response is provied with an HTTP status
-   * of #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_PRODUCTS_POST_CONFLICT_PRODUCT_EXISTS = 2552,
-
-  /**
-   * The merchant backend failed to serialize the transaction. The
-   * response is provied with an HTTP status of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PRODUCTS_POST_DB_COMMIT_SOFT_ERROR = 2553,
-
-  /**
-   * The merchant backend failed to commit the transaction. The response
-   * is provied with an HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PRODUCTS_POST_DB_COMMIT_HARD_ERROR = 2554,
-
-  /**
-   * The merchant backend failed to commit the transaction. The response
-   * is provied with an HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PRODUCTS_PATCH_DB_COMMIT_HARD_ERROR = 2555,
-
-  /**
-   * The merchant backend did not find the product to be updated. The
-   * response is provied with an HTTP status of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_PRODUCTS_PATCH_UNKNOWN_PRODUCT = 2556,
-
-  /**
-   * The update would have reduced the total amount of product lost,
-   * which is not allowed. The response is provied with an HTTP status
-   * of #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_PRODUCTS_PATCH_TOTAL_LOST_REDUCED = 2557,
-
-  /**
-   * The update would have mean that more stocks were lost than what
-   * remains from total inventory after sales, which is not allowed. The
-   * response is provied with an HTTP status of #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_PRODUCTS_PATCH_TOTAL_LOST_EXCEEDS_STOCKS = 2558,
-
-  /**
-   * The update would have reduced the total amount of product in stock,
-   * which is not allowed. The response is provied with an HTTP status
-   * of #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_PRODUCTS_PATCH_TOTAL_STOCKED_REDUCED = 2559,
-
-  /**
-   * The lock request is for more products than we have left (unlocked)
-   * in stock. The response is provied with an HTTP status of
-   * #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_PRODUCTS_LOCK_INSUFFICIENT_STOCKS = 2560,
-
-  /**
-   * The lock request is for an unknown product. The response is provied
-   * with an HTTP status of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_PRODUCTS_LOCK_UNKNOWN_PRODUCT = 2561,
-
-  /**
-   * The deletion request resulted in a hard database error. The
-   * response is provied with an HTTP status of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_PRODUCTS_DELETE_DB_HARD_FAILURE = 2562,
-
-  /**
-   * The deletion request was for a product unknown to the backend. The
-   * response is provied with an HTTP status of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_PRODUCTS_DELETE_NO_SUCH_PRODUCT = 2563,
-
-  /**
-   * The deletion request is for a product that is locked. The response
-   * is provied with an HTTP status of #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_PRODUCTS_DELETE_CONFLICTING_LOCK = 2564,
-
-  /**
-   * The merchant returned a malformed response. Error created client-
-   * side.
-   */
-  TALER_EC_REFUND_LOOKUP_INVALID_RESPONSE = 2600,
-
-  /**
-   * The frontend gave an unknown order id to issue the refund to.
-   */
-  TALER_EC_REFUND_ORDER_ID_UNKNOWN = 2601,
-
-  /**
-   * The amount to be refunded is inconsistent: either is lower than the
-   * previous amount being awarded, or it is too big to be paid back. In
-   * this second case, the fault stays on the business dept. side.
-   * Returned with an HTTP status of #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_REFUND_INCONSISTENT_AMOUNT = 2602,
-
-  /**
-   * The backend encountered an error while trying to retrieve the
-   * payment data from database.  Likely to be an internal error.
-   */
-  TALER_EC_REFUND_LOOKUP_DB_ERROR = 2603,
-
-  /**
-   * The backend encountered an error while trying to retrieve the
-   * payment data from database.  Likely to be an internal error.
-   */
-  TALER_EC_REFUND_MERCHANT_DB_COMMIT_ERROR = 2604,
-
-  /**
-   * Payments are stored in a single db transaction; this error
-   * indicates that one db operation within that transaction failed.
-   * This might involve storing of coins or other related db operations,
-   * like starting/committing the db transaction or marking a contract
-   * as paid.
-   */
-  TALER_EC_PAY_DB_STORE_PAYMENTS_ERROR = 2605,
-
-  /**
-   * The backend failed to sign the refund request.
-   */
-  TALER_EC_PAY_REFUND_SIGNATURE_FAILED = 2606,
-
-  /**
-   * The merchant backend is not available of any applicable refund(s)
-   * for this order. Returned with an HTTP status of
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_REFUND_LOOKUP_NO_REFUND = 2607,
-
-  /**
-   * The requested wire method is not supported by the exchange.
-   * Returned with an HTTP status of #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_RESERVES_POST_UNSUPPORTED_WIRE_METHOD = 2650,
-
-  /**
-   * The backend failed to commit the result to the database. Returned
-   * with an HTTP status of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_RESERVES_POST_DB_COMMIT_HARD_ERROR = 2651,
-
-  /**
-   * The backend failed to fetch the requested information from the
-   * database. Returned with an HTTP status of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_GET_RESERVES_DB_LOOKUP_ERROR = 2652,
-
-  /**
-   * The backend knows the instance that was supposed to support the
-   * tip, but it was not configured for tipping (i.e. has no exchange
-   * associated with it).  Likely to be a configuration error. Returned
-   * with an HTTP status code of #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_TIP_AUTHORIZE_INSTANCE_DOES_NOT_TIP = 2701,
-
-  /**
-   * The reserve that was used to fund the tips has expired. Returned
-   * with an HTTP status code of #MHD_HTTP_GONE.
-   */
-  TALER_EC_TIP_AUTHORIZE_RESERVE_EXPIRED = 2702,
-
-  /**
-   * The reserve that was used to fund the tips was not found in the DB.
-   * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE.
-   */
-  TALER_EC_TIP_AUTHORIZE_RESERVE_UNKNOWN = 2703,
-
-  /**
-   * The backend knows the instance that was supposed to support the
-   * tip, and it was configured for tipping. However, the funds
-   * remaining are insufficient to cover the tip, and the merchant
-   * should top up the reserve. Returned with an HTTP status code of
-   * #MHD_HTTP_PRECONDITION FAILED.
-   */
-  TALER_EC_TIP_AUTHORIZE_INSUFFICIENT_FUNDS = 2704,
-
-  /**
-   * The backend had trouble accessing the database to persist
-   * information about the tip authorization. Returned with an HTTP
-   * status code of internal error.
-   */
-  TALER_EC_TIP_AUTHORIZE_DB_HARD_ERROR = 2705,
-
-  /**
-   * The backend had trouble accessing the database to persist
-   * information about the tip authorization. The problem might be
-   * fixable by repeating the transaction.
-   */
-  TALER_EC_TIP_AUTHORIZE_DB_SOFT_ERROR = 2706,
-
-  /**
-   * The backend failed to obtain a reserve status from the exchange.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_STATUS_FAILED_EXCHANGE_DOWN = 2707,
-
-  /**
-   * The backend got an empty (!) reserve history from the exchange.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_FAILED_EMPTY = 2708,
-
-  /**
-   * The backend got an invalid reserve history (fails to start with a
-   * deposit) from the exchange. This response is provided with HTTP
-   * status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_INVALID_NO_DEPOSIT = 2709,
-
-  /**
-   * The backend got an 404 response from the exchange when it inquired
-   * about the reserve history. The response is provided with HTTP
-   * status code #MHD_HTTP_SERVICE_UNAVAILABLE.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_UNKNOWN_TO_EXCHANGE = 2710,
-
-  /**
-   * The backend got a reserve with a currency that does not match the
-   * backend's currency. The response is provided with HTTP status code
-   * #MHD_HTTP_SERVICE_UNAVAILABLE.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_CURRENCY_MISMATCH = 2711,
-
-  /**
-   * The backend got a reserve history with amounts it cannot process
-   * (addition failure in deposits). The response is provided with HTTP
-   * status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_ARITHMETIC_ISSUE_DEPOSIT = 2712,
-
-  /**
-   * The backend got a reserve history with amounts it cannot process
-   * (addition failure in withdraw amounts). The response is provided
-   * with HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_ARITHMETIC_ISSUE_WITHDRAW = 2713,
-
-  /**
-   * The backend got a reserve history with amounts it cannot process
-   * (addition failure in closing amounts). The response is provided
-   * with HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_ARITHMETIC_ISSUE_CLOSED = 2714,
-
-  /**
-   * The backend got a reserve history with inconsistent amounts.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_ARITHMETIC_ISSUE_INCONSISTENT = 2715,
-
-  /**
-   * The backend encountered a database error querying tipping reserves.
-   */
-  TALER_EC_TIP_QUERY_DB_ERROR = 2716,
-
-  /**
-   * The backend got an unexpected resever history reply from the
-   * exchange. This response is provided with HTTP status code
-   * #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_FAILED = 2717,
-
-  /**
-   * The backend got a reserve history with amounts it cannot process
-   * (addition failure in withdraw amounts). The response is provided
-   * with HTTP status code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_QUERY_RESERVE_HISTORY_ARITHMETIC_ISSUE_RECOUP = 2718,
-
-  /**
-   * The backend knows the instance that was supposed to support the
-   * tip, but it was not configured for tipping (i.e. has no exchange
-   * associated with it).  Likely to be a configuration error. Returned
-   * with an HTTP status code of #MHD_HTTP_PRECONDITION_FAILED.
-   */
-  TALER_EC_TIP_QUERY_INSTANCE_DOES_NOT_TIP = 2719,
-
-  /**
-   * The tip id is unknown.  This could happen if the tip id is wrong or
-   * the tip authorization expired.
-   */
-  TALER_EC_TIP_QUERY_TIP_ID_UNKNOWN = 2720,
-
-  /**
-   * The reserve could not be deleted due to a database failure.
-   * Returned with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_RESERVES_DELETE_DB_HARD_FAILURE = 2721,
-
-  /**
-   * The reserve could not be deleted because it is unknown. Returned
-   * with HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_RESERVES_DELETE_NO_SUCH_RESERVE = 2722,
-
-  /**
-   * The backend got an unexpected error trying to lookup reserve
-   * details from the backend. This response is provided with HTTP
-   * status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TIP_LOOKUP_RESERVE_DB_FAILURE = 2723,
-
-  /**
-   * The backend repeatedly failed to serialize the transaction to
-   * authorize the tip. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TIP_AUTHORIZE_DB_SERIALIZATION_FAILURE = 2724,
-
-  /**
-   * The backend failed to start the transaction to authorize the tip.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TIP_AUTHORIZE_DB_START_FAILURE = 2725,
-
-  /**
-   * The backend failed looking up the reserve needed to authorize the
-   * tip. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TIP_AUTHORIZE_DB_LOOKUP_RESERVE_FAILURE = 2726,
-
-  /**
-   * The backend failed to find a reserve needed to authorize the tip.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_SERVICE_UNAVAILABLE.
-   */
-  TALER_EC_TIP_AUTHORIZE_DB_RESERVE_NOT_FOUND = 2727,
-
-  /**
-   * The backend encountered an internal invariant violation. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TIP_AUTHORIZE_DB_RESERVE_INVARIANT_FAILURE = 2728,
-
-  /**
-   * The selected exchange expired. This response is provided with HTTP
-   * status code #MHD_HTTP_GONE.
-   */
-  TALER_EC_TIP_AUTHORIZE_DB_RESERVE_EXPIRED = 2729,
-
-  /**
-   * The backend failed updating the reserve needed to authorize the
-   * tip. This response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TIP_AUTHORIZE_DB_UPDATE_RESERVE_FAILURE = 2730,
-
-  /**
-   * The backend had trouble accessing the database to persist
-   * information about enabling tips. Returned with an HTTP status code
-   * of internal error.
-   */
-  TALER_EC_TIP_ENABLE_DB_TRANSACTION_ERROR = 2750,
-
-  /**
-   * The tip ID is unknown.  This could happen if the tip has expired.
-   * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_TIP_PICKUP_TIP_ID_UNKNOWN = 2800,
-
-  /**
-   * The amount requested exceeds the remaining tipping balance for this
-   * tip ID. Returned with an HTTP status code of "Conflict" (as it
-   * conflicts with a previous pickup operation).
-   */
-  TALER_EC_TIP_PICKUP_NO_FUNDS = 2801,
-
-  /**
-   * We encountered a DB error, repeating the request may work.
-   */
-  TALER_EC_TIP_PICKUP_DB_ERROR_SOFT = 2802,
-
-  /**
-   * We encountered a DB error, repeating the request will not help.
-   * This is an internal server error.
-   */
-  TALER_EC_TIP_PICKUP_DB_ERROR_HARD = 2803,
-
-  /**
-   * The same pickup ID was already used for picking up a different
-   * amount. This points to a very strange internal error as the pickup
-   * ID is derived from the denomination key which is tied to a
-   * particular amount. Hence this should also be an internal server
-   * error.
-   */
-  TALER_EC_TIP_PICKUP_AMOUNT_CHANGED = 2804,
-
-  /**
-   * We failed to contact the exchange to obtain the denomination keys.
-   * Returned with a response code #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_PICKUP_EXCHANGE_DOWN = 2805,
-
-  /**
-   * We contacted the exchange to obtain any denomination keys, but got
-   * no valid keys. Returned with a response code
-   * #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_PICKUP_EXCHANGE_LACKED_KEYS = 2806,
-
-  /**
-   * We contacted the exchange to obtain at least one of the
-   * denomination keys specified in the request. Returned with a
-   * response code "not found" (404).
-   */
-  TALER_EC_TIP_PICKUP_EXCHANGE_LACKED_KEY = 2807,
-
-  /**
-   * We encountered an arithmetic issue totaling up the amount to
-   * withdraw. Returned with a response code of #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_TIP_PICKUP_EXCHANGE_AMOUNT_OVERFLOW = 2808,
-
-  /**
-   * The number of planchets specified exceeded the limit. Returned with
-   * a response code of #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_TIP_PICKUP_EXCHANGE_TOO_MANY_PLANCHETS = 2809,
-
-  /**
-   * The merchant failed to initialize the withdraw operaiton. Returned
-   * with a response code of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TIP_PICKUP_WITHDRAW_FAILED = 2810,
-
-  /**
-   * The merchant failed to initialize the withdraw operaiton. Returned
-   * with a response code of #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_PICKUP_WITHDRAW_FAILED_AT_EXCHANGE = 2811,
-
-  /**
-   * The client failed to unblind the signature returned by the
-   * merchant. Generated client-side.
-   */
-  TALER_EC_TIP_PICKUP_UNBLIND_FAILURE = 2812,
-
-  /**
-   * Merchant failed to access its database to lookup the tip. Returned
-   * with a response code of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_GET_TIPS_DB_LOOKUP_ERROR = 2813,
-
-  /**
-   * Merchant failed find the tip in its database. Returned with a
-   * response code of #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_GET_TIPS_ID_UNKNOWN = 2814,
-
-  /**
-   * The merchant failed to contact the exchange. Returned with a
-   * response code of #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_PICKUP_CONTACT_EXCHANGE_ERROR = 2815,
-
-  /**
-   * The merchant failed to obtain keys from the exchange. Returned with
-   * a response code of #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_PICKUP_EXCHANGE_KEYS_ERROR = 2816,
-
-  /**
-   * The merchant failed to store data in its own database. Returned
-   * with a response code of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TIP_PICKUP_DB_STORE_HARD_ERROR = 2817,
-
-  /**
-   * The merchant failed to get a timely response from the exchange.
-   * Returned with a response code of #MHD_HTTP_REQUEST_TIMEOUT.
-   */
-  TALER_EC_TIP_PICKUP_EXCHANGE_TIMEOUT = 2818,
-
-  /**
-   * The exchange returned a failure code for the withdraw operation.
-   * Returned with a response code of #MHD_HTTP_FAILED_DEPENDENCY.
-   */
-  TALER_EC_TIP_PICKUP_EXCHANGE_ERROR = 2819,
-
-  /**
-   * The merchant failed to add up the amounts to compute the pick up
-   * value. Returned with a response code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TIP_PICKUP_SUMMATION_FAILED = 2820,
-
-  /**
-   * The tip expired. Returned with a response code of #MHD_HTTP_GONE.
-   */
-  TALER_EC_TIP_PICKUP_HAS_EXPIRED = 2821,
-
-  /**
-   * The requested withdraw amount exceeds the amount remaining to be
-   * picked up. Returned with a response code of #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_TIP_PICKUP_AMOUNT_EXCEEDS_TIP_REMAINING = 2822,
-
-  /**
-   * The merchant failed to store data in its own database. Returned
-   * with a response code of #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TIP_PICKUP_DB_STORE_SOFT_ERROR = 2823,
-
-  /**
-   * The merchant did not find the specified denomination key in the
-   * exchange's key set. Returned with a response code of
-   * #MHD_HTTP_CONFLICT.
-   */
-  TALER_EC_TIP_PICKUP_DENOMINATION_UNKNOWN = 2824,
-
-  /**
-   * We failed to fetch contract terms from our merchant database. The
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_GET_ORDERS_DB_LOOKUP_ERROR = 2900,
-
-  /**
-   * We failed to find the contract terms from our merchant database.
-   * The response is provided with HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_GET_ORDERS_ID_UNKNOWN = 2901,
-
-  /**
-   * The contract hash provided by the wallet does not match the order.
-   * The response is provided with HTTP status code #MHD_HTTP_FORBIDDEN.
-   */
-  TALER_EC_GET_ORDERS_WRONG_CONTRACT = 2902,
-
-  /**
-   * We failed to contract terms from our merchant database. The
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_CHECK_PAYMENT_DB_FETCH_CONTRACT_TERMS_ERROR = 2911,
-
-  /**
-   * We failed to contract terms from our merchant database. The
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_CHECK_PAYMENT_DB_FETCH_ORDER_ERROR = 2912,
-
-  /**
-   * The order id we're checking is unknown, likely the frontend did not
-   * create the order first.
-   */
-  TALER_EC_CHECK_PAYMENT_ORDER_ID_UNKNOWN = 2913,
-
-  /**
-   * Failed computing a hash code (likely server out-of-memory). This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_CHECK_PAYMENT_FAILED_COMPUTE_PROPOSAL_HASH = 2914,
-
-  /**
-   * Signature "session_sig" failed to verify. This response is provided
-   * with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_CHECK_PAYMENT_SESSION_SIGNATURE_INVALID = 2915,
-
-  /**
-   * The response we received from the merchant is malformed. This error
-   * is generated client-side.
-   */
-  TALER_EC_CHECK_PAYMENT_RESPONSE_MALFORMED = 2916,
-
-  /**
-   * The signature from the exchange on the deposit confirmation is
-   * invalid.  Returned with a "400 Bad Request" status code.
-   */
-  TALER_EC_DEPOSIT_CONFIRMATION_SIGNATURE_INVALID = 3000,
-
-  /**
-   * The auditor had trouble storing the deposit confirmation in its
-   * database. Returned with an HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_DEPOSIT_CONFIRMATION_STORE_DB_ERROR = 3001,
-
-  /**
-   * The auditor had trouble retrieving the exchange list from its
-   * database. Returned with an HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_LIST_EXCHANGES_DB_ERROR = 3002,
-
-  /**
-   * The auditor had trouble storing an exchange in its database.
-   * Returned with an HTTP status code of
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_AUDITOR_EXCHANGE_STORE_DB_ERROR = 3003,
-
-  /**
-   * The auditor (!) responded with a reply that did not satsify the
-   * protocol. This error is not used in the protocol but created
-   * client-side.
-   */
-  TALER_EC_AUDITOR_EXCHANGES_REPLY_MALFORMED = 3004,
-
-  /**
-   * The exchange failed to compute ECDH.  This response is provided
-   * with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TEST_ECDH_ERROR = 4000,
-
-  /**
-   * The EdDSA test signature is invalid.  This response is provided
-   * with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_TEST_EDDSA_INVALID = 4001,
-
-  /**
-   * The exchange failed to compute the EdDSA test signature.  This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TEST_EDDSA_ERROR = 4002,
-
-  /**
-   * The exchange failed to generate an RSA key.  This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TEST_RSA_GEN_ERROR = 4003,
-
-  /**
-   * The exchange failed to compute the public RSA key.  This response
-   * is provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TEST_RSA_PUB_ERROR = 4004,
-
-  /**
-   * The exchange failed to compute the RSA signature.  This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_TEST_RSA_SIGN_ERROR = 4005,
-
-  /**
-   * The JSON in the server's response was malformed.  This response is
-   * provided with HTTP status code of 0.
-   */
-  TALER_EC_SERVER_JSON_INVALID = 5000,
-
-  /**
-   * A signature in the server's response was malformed.  This response
-   * is provided with HTTP status code of 0.
-   */
-  TALER_EC_SERVER_SIGNATURE_INVALID = 5001,
-
-  /**
-   * Wire transfer attempted with credit and debit party being the same
-   * bank account.
-   */
-  TALER_EC_BANK_SAME_ACCOUNT = 5102,
-
-  /**
-   * Wire transfer impossible, due to financial limitation of the party
-   * that attempted the payment.
-   */
-  TALER_EC_BANK_UNALLOWED_DEBIT = 5103,
-
-  /**
-   * Arithmetic operation between two amounts of different currency was
-   * attempted.
-   */
-  TALER_EC_BANK_CURRENCY_MISMATCH = 5104,
-
-  /**
-   * At least one GET parameter was either missing or invalid for the
-   * requested operation.
-   */
-  TALER_EC_BANK_PARAMETER_MISSING_OR_INVALID = 5105,
-
-  /**
-   * JSON body sent was invalid for the requested operation.
-   */
-  TALER_EC_BANK_JSON_INVALID = 5106,
-
-  /**
-   * Negative number was used (as value and/or fraction) to initiate a
-   * Amount object.
-   */
-  TALER_EC_BANK_NEGATIVE_NUMBER_AMOUNT = 5107,
-
-  /**
-   * A number too big was used (as value and/or fraction) to initiate a
-   * amount object.
-   */
-  TALER_EC_BANK_NUMBER_TOO_BIG = 5108,
-
-  /**
-   * Could not login for the requested operation.
-   */
-  TALER_EC_BANK_LOGIN_FAILED = 5109,
-
-  /**
-   * The bank account referenced in the requested operation was not
-   * found.  Returned along "400 Not found".
-   */
-  TALER_EC_BANK_UNKNOWN_ACCOUNT = 5110,
-
-  /**
-   * The transaction referenced in the requested operation (typically a
-   * reject operation), was not found.
-   */
-  TALER_EC_BANK_TRANSACTION_NOT_FOUND = 5111,
-
-  /**
-   * Bank received a malformed amount string.
-   */
-  TALER_EC_BANK_BAD_FORMAT_AMOUNT = 5112,
-
-  /**
-   * The client does not own the account credited by the transaction
-   * which is to be rejected, so it has no rights do reject it.  To be
-   * returned along HTTP 403 Forbidden.
-   */
-  TALER_EC_BANK_REJECT_NO_RIGHTS = 5200,
-
-  /**
-   * This error code is returned when no known exception types captured
-   * the exception, and comes along with a 500 Internal Server Error.
-   */
-  TALER_EC_BANK_UNMANAGED_EXCEPTION = 5300,
-
-  /**
-   * This error code is used for all those exceptions that do not really
-   * need a specific error code to return to the client, but need to
-   * signal the middleware that the bank is not responding with 500
-   * Internal Server Error.  Used for example when a client is trying to
-   * register with a unavailable username.
-   */
-  TALER_EC_BANK_SOFT_EXCEPTION = 5400,
-
-  /**
-   * The request UID for a request to transfer funds has already been
-   * used, but with different details for the transfer.
-   */
-  TALER_EC_BANK_TRANSFER_REQUEST_UID_REUSED = 5500,
-
-  /**
-   * The sync service failed to access its database. This response is
-   * provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_SYNC_DB_FETCH_ERROR = 6000,
-
-  /**
-   * The sync service failed find the record in its database. This
-   * response is provided with HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_SYNC_BACKUP_UNKNOWN = 6001,
-
-  /**
-   * The sync service failed find the account in its database. This
-   * response is provided with HTTP status code #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_SYNC_ACCOUNT_UNKNOWN = 6002,
-
-  /**
-   * The SHA-512 hash provided in the If-None-Match header is malformed.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_SYNC_BAD_IF_NONE_MATCH = 6003,
-
-  /**
-   * The SHA-512 hash provided in the If-Match header is malformed or
-   * missing. This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_SYNC_BAD_IF_MATCH = 6004,
-
-  /**
-   * The signature provided in the "Sync-Signature" header is malformed
-   * or missing. This response is provided with HTTP status code
-   * #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_SYNC_BAD_SYNC_SIGNATURE = 6005,
-
-  /**
-   * The signature provided in the "Sync-Signature" header does not
-   * match the account, old or new Etags. This response is provided with
-   * HTTP status code #MHD_HTTP_FORBIDDEN.
-   */
-  TALER_EC_SYNC_INVALID_SIGNATURE = 6007,
-
-  /**
-   * The "Content-length" field for the upload is either not a number,
-   * or too big, or missing. This response is provided with HTTP status
-   * code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_SYNC_BAD_CONTENT_LENGTH = 6008,
-
-  /**
-   * The "Content-length" field for the upload is too big based on the
-   * server's terms of service. This response is provided with HTTP
-   * status code #MHD_HTTP_PAYLOAD_TOO_LARGE.
-   */
-  TALER_EC_SYNC_EXCESSIVE_CONTENT_LENGTH = 6009,
-
-  /**
-   * The server is out of memory to handle the upload. Trying again
-   * later may succeed. This response is provided with HTTP status code
-   * #MHD_HTTP_PAYLOAD_TOO_LARGE.
-   */
-  TALER_EC_SYNC_OUT_OF_MEMORY_ON_CONTENT_LENGTH = 6010,
-
-  /**
-   * The uploaded data does not match the Etag. This response is
-   * provided with HTTP status code #MHD_HTTP_BAD_REQUEST.
-   */
-  TALER_EC_SYNC_INVALID_UPLOAD = 6011,
-
-  /**
-   * We failed to check for existing upload data in the database. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_SYNC_DATABASE_FETCH_ERROR = 6012,
-
-  /**
-   * HTTP server was being shutdown while this operation was pending.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_SERVICE_UNAVAILABLE.
-   */
-  TALER_EC_SYNC_SHUTDOWN = 6013,
-
-  /**
-   * HTTP server experienced a timeout while awaiting promised payment.
-   * This response is provided with HTTP status code
-   * #MHD_HTTP_REQUEST_TIMEOUT.
-   */
-  TALER_EC_SYNC_PAYMENT_TIMEOUT = 6014,
-
-  /**
-   * Sync could not store order data in its own database. This response
-   * is provided with HTTP status code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_SYNC_PAYMENT_CREATE_DB_ERROR = 6015,
-
-  /**
-   * Sync could not store payment confirmation in its own database. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_SYNC_PAYMENT_CONFIRM_DB_ERROR = 6016,
-
-  /**
-   * Sync could not fetch information about possible existing orders
-   * from its own database. This response is provided with HTTP status
-   * code #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_SYNC_PAYMENT_CHECK_ORDER_DB_ERROR = 6017,
-
-  /**
-   * Sync could not setup the payment request with its own backend. This
-   * response is provided with HTTP status code
-   * #MHD_HTTP_INTERNAL_SERVER_ERROR.
-   */
-  TALER_EC_SYNC_PAYMENT_CREATE_BACKEND_ERROR = 6018,
-
-  /**
-   * The sync service failed find the backup to be updated in its
-   * database. This response is provided with HTTP status code
-   * #MHD_HTTP_NOT_FOUND.
-   */
-  TALER_EC_SYNC_PREVIOUS_BACKUP_UNKNOWN = 6019,
-
-  /**
-   * End of error code range.
-   */
-  TALER_EC_END = 9999,
-
-};
-
-
-#endif

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]