commit 1d6ded44dd5b3439681ba36f8ee54a0a59226133
parent 30f8c2c12367cbc39af5a751c7834f6e0aed58d1
Author: Christian Grothoff <grothoff@gnunet.org>
Date: Mon, 11 Aug 2025 12:42:02 +0200
ensure order is preserved for the blinded signatures of the output tokens
Diffstat:
6 files changed, 426 insertions(+), 414 deletions(-)
diff --git a/src/backend/taler-merchant-httpd_post-orders-ID-pay.c b/src/backend/taler-merchant-httpd_post-orders-ID-pay.c
@@ -2083,6 +2083,7 @@ phase_final_output_token_processing (struct PayContext *pc)
qs = TMH_db->insert_order_blinded_sigs (
TMH_db->cls,
pc->order_id,
+ i,
&pc->validate_tokens.output_tokens[i].h_issue.hash,
pc->validate_tokens.output_tokens[i].sig.signature);
diff --git a/src/backenddb/merchant-0023.sql b/src/backenddb/merchant-0023.sql
@@ -14,7 +14,7 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
--- @file merchant-0022.sql
+-- @file merchant-0023.sql
-- @brief Create table to store donau related information
-- @author Bohdan Potuzhnyi
-- @author Vlada Svirsh
@@ -77,12 +77,16 @@ CREATE TABLE IF NOT EXISTS merchant_order_token_blinded_sigs
(order_token_bs_serial BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
,order_serial BIGINT NOT NULL
REFERENCES merchant_contract_terms (order_serial) ON DELETE CASCADE
- ,token_blinded_signature BYTEA NOT NULL
+ ,token_index INT4 NOT NULL
+ ,token_blinded_signature BYTEA NOT NULL
,token_hash BYTEA NOT NULL CHECK (LENGTH(token_hash)=64)
+ ,PRIMARY KEY (order_serial, token_index)
);
COMMENT ON TABLE merchant_order_token_blinded_sigs
IS 'Table linking merchant orders with Donau BUDIS information';
+COMMENT ON COLUMN merchant_order_token_blinded_sigs.token_index
+ IS 'offset of the given signature in the output token array';
COMMENT ON COLUMN merchant_order_token_blinded_sigs.order_token_bs_serial
IS 'Unique serial identifier for token order linkage';
COMMENT ON COLUMN merchant_order_token_blinded_sigs.order_serial
diff --git a/src/backenddb/pg_insert_order_blinded_sigs.c b/src/backenddb/pg_insert_order_blinded_sigs.c
@@ -29,12 +29,14 @@ enum GNUNET_DB_QueryStatus
TMH_PG_insert_order_blinded_sigs (
void *cls,
const char *order_id,
+ uint32_t i,
const struct GNUNET_HashCode *hash,
const struct GNUNET_CRYPTO_BlindedSignature *blind_sig)
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
GNUNET_PQ_query_param_string (order_id),
+ GNUNET_PQ_query_param_uint32 (&i),
GNUNET_PQ_query_param_auto_from_type (hash),
GNUNET_PQ_query_param_blinded_sig (blind_sig),
GNUNET_PQ_query_param_end
@@ -45,10 +47,11 @@ TMH_PG_insert_order_blinded_sigs (
"insert_blinded_sigs",
"INSERT INTO merchant_order_token_blinded_sigs"
" (order_serial"
- " , token_hash"
+ " ,token_index"
+ " ,token_hash"
" ,token_blinded_signature"
")"
- " SELECT order_serial, $2, $3"
+ " SELECT order_serial, $2, $3, $4"
" FROM merchant_contract_terms"
" WHERE order_id = $1");
diff --git a/src/backenddb/pg_insert_order_blinded_sigs.h b/src/backenddb/pg_insert_order_blinded_sigs.h
@@ -31,14 +31,16 @@
*
* @param cls closure (our `struct PostgresClosure *`)
* @param order_id business-level order identifier
- * @param hash hash of the blinded_sig
- * @param blind_sig blinded signature of the first blinded_sigs
+ * @param i index of the @a blinded_sig in the output token array
+ * @param hash hash of the @a blinded_sig
+ * @param blind_sig blinded signature for the token outputs
* @return GNUNET_DB status code
*/
enum GNUNET_DB_QueryStatus
TMH_PG_insert_order_blinded_sigs (
void *cls,
const char *order_id,
+ uint32_t i,
const struct GNUNET_HashCode *hash,
const struct GNUNET_CRYPTO_BlindedSignature *blind_sig);
diff --git a/src/backenddb/pg_select_order_blinded_sigs.c b/src/backenddb/pg_select_order_blinded_sigs.c
@@ -116,8 +116,8 @@ TMH_PG_select_order_blinded_sigs (
" ,motbs.token_hash"
" FROM merchant_order_token_blinded_sigs AS motbs"
" JOIN merchant_contract_terms AS mct USING (order_serial)"
- " WHERE mct.order_id = $1");
-
+ " WHERE mct.order_id = $1"
+ " ORDER BY motbs.token_index ASC");
return GNUNET_PQ_eval_prepared_multi_select (
pg->conn,
"select_blinded_sigs",
diff --git a/src/include/taler_merchantdb_plugin.h b/src/include/taler_merchantdb_plugin.h
@@ -1538,7 +1538,7 @@ struct TALER_MERCHANTDB_Plugin
* @param cls closure
*/
enum GNUNET_GenericReturnValue
- (*connect)(void *cls);
+ (*connect)(void *cls);
/**
* Drop merchant tables. Used for testcases and to reset the DB.
@@ -1547,7 +1547,7 @@ struct TALER_MERCHANTDB_Plugin
* @return #GNUNET_OK upon success; #GNUNET_SYSERR upon failure
*/
enum GNUNET_GenericReturnValue
- (*drop_tables)(void *cls);
+ (*drop_tables)(void *cls);
/**
* Garbage collect database. Removes unnecessary data.
@@ -1556,7 +1556,7 @@ struct TALER_MERCHANTDB_Plugin
* @return #GNUNET_OK upon success; #GNUNET_SYSERR upon failure
*/
enum GNUNET_GenericReturnValue
- (*gc)(void *cls);
+ (*gc)(void *cls);
/**
* Initialize merchant tables
@@ -1565,7 +1565,7 @@ struct TALER_MERCHANTDB_Plugin
* @return #GNUNET_OK upon success; #GNUNET_SYSERR upon failure
*/
enum GNUNET_GenericReturnValue
- (*create_tables)(void *cls);
+ (*create_tables)(void *cls);
/**
* Register callback to be invoked on events of type @a es.
@@ -1628,8 +1628,8 @@ struct TALER_MERCHANTDB_Plugin
* @return #GNUNET_OK on success
*/
enum GNUNET_GenericReturnValue
- (*start)(void *cls,
- const char *name);
+ (*start)(void *cls,
+ const char *name);
/**
* Start a transaction with isolation level 'read committed'.
@@ -1640,8 +1640,8 @@ struct TALER_MERCHANTDB_Plugin
* @return #GNUNET_OK on success
*/
enum GNUNET_GenericReturnValue
- (*start_read_committed)(void *cls,
- const char *name);
+ (*start_read_committed)(void *cls,
+ const char *name);
/**
* Roll back the current transaction of a database connection.
@@ -1658,7 +1658,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*commit)(void *cls);
+ (*commit)(void *cls);
/**
* Lookup all of the instances this backend has configured.
@@ -1669,10 +1669,10 @@ struct TALER_MERCHANTDB_Plugin
* @param cb_cls closure for @a cb
*/
enum GNUNET_DB_QueryStatus
- (*lookup_instances)(void *cls,
- bool active_only,
- TALER_MERCHANTDB_InstanceCallback cb,
- void *cb_cls);
+ (*lookup_instances)(void *cls,
+ bool active_only,
+ TALER_MERCHANTDB_InstanceCallback cb,
+ void *cb_cls);
/**
* Lookup one of the instances this backend has configured.
@@ -1684,11 +1684,11 @@ struct TALER_MERCHANTDB_Plugin
* @param cb_cls closure for @a cb
*/
enum GNUNET_DB_QueryStatus
- (*lookup_instance)(void *cls,
- const char *id,
- bool active_only,
- TALER_MERCHANTDB_InstanceCallback cb,
- void *cb_cls);
+ (*lookup_instance)(void *cls,
+ const char *id,
+ bool active_only,
+ TALER_MERCHANTDB_InstanceCallback cb,
+ void *cb_cls);
/**
* Lookup authentication data of an instance.
@@ -1698,9 +1698,9 @@ struct TALER_MERCHANTDB_Plugin
* @param[out] ias where to store the auth data
*/
enum GNUNET_DB_QueryStatus
- (*lookup_instance_auth)(void *cls,
- const char *instance_id,
- struct TALER_MERCHANTDB_InstanceAuthSettings *ias);
+ (*lookup_instance_auth)(void *cls,
+ const char *instance_id,
+ struct TALER_MERCHANTDB_InstanceAuthSettings *ias);
/**
@@ -1715,12 +1715,12 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*insert_instance)(void *cls,
- const struct TALER_MerchantPublicKeyP *merchant_pub,
- const struct TALER_MerchantPrivateKeyP *merchant_priv,
- const struct TALER_MERCHANTDB_InstanceSettings *is,
- const struct TALER_MERCHANTDB_InstanceAuthSettings *ias,
- bool validation_needed);
+ (*insert_instance)(void *cls,
+ const struct TALER_MerchantPublicKeyP *merchant_pub,
+ const struct TALER_MerchantPrivateKeyP *merchant_priv,
+ const struct TALER_MERCHANTDB_InstanceSettings *is,
+ const struct TALER_MERCHANTDB_InstanceAuthSettings *ias,
+ bool validation_needed);
/**
@@ -1731,7 +1731,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*insert_account)(
+ (*insert_account)(
void *cls,
const struct TALER_MERCHANTDB_AccountDetails *account_details);
@@ -1749,7 +1749,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*insert_login_token)(
+ (*insert_login_token)(
void *cls,
const char *id,
const struct TALER_MERCHANTDB_LoginTokenP *token,
@@ -1770,7 +1770,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*select_login_token)(
+ (*select_login_token)(
void *cls,
const char *id,
const struct TALER_MERCHANTDB_LoginTokenP *token,
@@ -1790,12 +1790,12 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_login_tokens)(void *cls,
- const char *instance_id,
- uint64_t offset,
- int64_t limit,
- TALER_MERCHANTDB_LoginTokensCallback cb,
- void *cb_cls);
+ (*lookup_login_tokens)(void *cls,
+ const char *instance_id,
+ uint64_t offset,
+ int64_t limit,
+ TALER_MERCHANTDB_LoginTokensCallback cb,
+ void *cb_cls);
/**
* Delete login token from database.
@@ -1806,7 +1806,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*delete_login_token)(
+ (*delete_login_token)(
void *cls,
const char *id,
const struct TALER_MERCHANTDB_LoginTokenP *token);
@@ -1820,7 +1820,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*delete_login_token_serial)(
+ (*delete_login_token_serial)(
void *cls,
const char *id,
uint64_t serial);
@@ -1837,7 +1837,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*update_account)(
+ (*update_account)(
void *cls,
const char *id,
const struct TALER_MerchantWireHashP *h_wire,
@@ -1855,7 +1855,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*select_accounts)(
+ (*select_accounts)(
void *cls,
const char *id,
TALER_MERCHANTDB_AccountCallback cb,
@@ -1872,7 +1872,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*select_account)(
+ (*select_account)(
void *cls,
const char *id,
const struct TALER_MerchantWireHashP *h_wire,
@@ -1889,7 +1889,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*select_account_by_uri)(
+ (*select_account_by_uri)(
void *cls,
const char *id,
struct TALER_FullPayto payto_uri,
@@ -1904,7 +1904,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*delete_instance_private_key)(
+ (*delete_instance_private_key)(
void *cls,
const char *merchant_id);
@@ -1917,8 +1917,8 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*purge_instance)(void *cls,
- const char *merchant_id);
+ (*purge_instance)(void *cls,
+ const char *merchant_id);
/**
* Update information about an instance into our database.
@@ -1928,8 +1928,8 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*update_instance)(void *cls,
- const struct TALER_MERCHANTDB_InstanceSettings *is);
+ (*update_instance)(void *cls,
+ const struct TALER_MERCHANTDB_InstanceSettings *is);
/**
* Update information about an instance's authentication settings
@@ -1941,7 +1941,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*update_instance_auth)(
+ (*update_instance_auth)(
void *cls,
const char *merchant_id,
const struct TALER_MERCHANTDB_InstanceAuthSettings *ias);
@@ -1955,9 +1955,9 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*inactivate_account)(void *cls,
- const char *merchant_id,
- const struct TALER_MerchantWireHashP *h_wire);
+ (*inactivate_account)(void *cls,
+ const char *merchant_id,
+ const struct TALER_MerchantWireHashP *h_wire);
/**
@@ -1969,9 +1969,9 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*activate_account)(void *cls,
- const char *merchant_id,
- const struct TALER_MerchantWireHashP *h_wire);
+ (*activate_account)(void *cls,
+ const char *merchant_id,
+ const struct TALER_MerchantWireHashP *h_wire);
/**
@@ -1988,7 +1988,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*account_kyc_get_status)(
+ (*account_kyc_get_status)(
void *cls,
const char *merchant_id,
const struct TALER_MerchantWireHashP *h_wire,
@@ -2017,7 +2017,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*get_kyc_status)(
+ (*get_kyc_status)(
void *cls,
struct TALER_FullPayto merchant_account_uri,
const char *instance_id,
@@ -2046,7 +2046,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*get_kyc_limits)(
+ (*get_kyc_limits)(
void *cls,
struct TALER_FullPayto merchant_account_uri,
const char *instance_id,
@@ -2075,7 +2075,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*account_kyc_set_status)(
+ (*account_kyc_set_status)(
void *cls,
const char *merchant_id,
const struct TALER_MerchantWireHashP *h_wire,
@@ -2103,7 +2103,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*account_kyc_set_failed)(
+ (*account_kyc_set_failed)(
void *cls,
const char *merchant_id,
const struct TALER_MerchantWireHashP *h_wire,
@@ -2126,12 +2126,12 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_products)(void *cls,
- const char *instance_id,
- uint64_t offset,
- int64_t limit,
- TALER_MERCHANTDB_ProductsCallback cb,
- void *cb_cls);
+ (*lookup_products)(void *cls,
+ const char *instance_id,
+ uint64_t offset,
+ int64_t limit,
+ TALER_MERCHANTDB_ProductsCallback cb,
+ void *cb_cls);
/**
@@ -2144,10 +2144,10 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_all_products)(void *cls,
- const char *instance_id,
- TALER_MERCHANTDB_ProductCallback cb,
- void *cb_cls);
+ (*lookup_all_products)(void *cls,
+ const char *instance_id,
+ TALER_MERCHANTDB_ProductCallback cb,
+ void *cb_cls);
/**
* Lookup details about a particular product.
@@ -2163,12 +2163,12 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_product)(void *cls,
- const char *instance_id,
- const char *product_id,
- struct TALER_MERCHANTDB_ProductDetails *pd,
- size_t *num_categories,
- uint64_t **categories);
+ (*lookup_product)(void *cls,
+ const char *instance_id,
+ const char *product_id,
+ struct TALER_MERCHANTDB_ProductDetails *pd,
+ size_t *num_categories,
+ uint64_t **categories);
/**
* Delete information about a product. Note that the transaction must
@@ -2181,9 +2181,9 @@ struct TALER_MERCHANTDB_Plugin
* if locks prevent deletion OR product unknown
*/
enum GNUNET_DB_QueryStatus
- (*delete_product)(void *cls,
- const char *instance_id,
- const char *product_id);
+ (*delete_product)(void *cls,
+ const char *instance_id,
+ const char *product_id);
/**
* Insert details about a particular product.
@@ -2201,15 +2201,15 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*insert_product)(void *cls,
- const char *instance_id,
- const char *product_id,
- const struct TALER_MERCHANTDB_ProductDetails *pd,
- size_t num_cats,
- const uint64_t *cats,
- bool *no_instance,
- bool *conflict,
- ssize_t *no_cat);
+ (*insert_product)(void *cls,
+ const char *instance_id,
+ const char *product_id,
+ const struct TALER_MERCHANTDB_ProductDetails *pd,
+ size_t num_cats,
+ const uint64_t *cats,
+ bool *no_instance,
+ bool *conflict,
+ ssize_t *no_cat);
/**
* Update details about a particular product. Note that the
@@ -2233,18 +2233,18 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*update_product)(void *cls,
- const char *instance_id,
- const char *product_id,
- const struct TALER_MERCHANTDB_ProductDetails *pd,
- size_t num_cats,
- const uint64_t *cats,
- bool *no_instance,
- ssize_t *no_cat,
- bool *no_product,
- bool *lost_reduced,
- bool *sold_reduced,
- bool *stocked_reduced);
+ (*update_product)(void *cls,
+ const char *instance_id,
+ const char *product_id,
+ const struct TALER_MERCHANTDB_ProductDetails *pd,
+ size_t num_cats,
+ const uint64_t *cats,
+ bool *no_instance,
+ ssize_t *no_cat,
+ bool *no_product,
+ bool *lost_reduced,
+ bool *sold_reduced,
+ bool *stocked_reduced);
/**
* Lock stocks of a particular product. Note that the transaction must
@@ -2260,12 +2260,12 @@ struct TALER_MERCHANTDB_Plugin
* product is unknown OR if there insufficient stocks remaining
*/
enum GNUNET_DB_QueryStatus
- (*lock_product)(void *cls,
- const char *instance_id,
- const char *product_id,
- const struct GNUNET_Uuid *uuid,
- uint64_t quantity,
- struct GNUNET_TIME_Timestamp expiration_time);
+ (*lock_product)(void *cls,
+ const char *instance_id,
+ const char *product_id,
+ const struct GNUNET_Uuid *uuid,
+ uint64_t quantity,
+ struct GNUNET_TIME_Timestamp expiration_time);
/**
@@ -2277,7 +2277,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*expire_locks)(void *cls);
+ (*expire_locks)(void *cls);
/**
@@ -2292,10 +2292,10 @@ struct TALER_MERCHANTDB_Plugin
* if locks prevent deletion OR order unknown
*/
enum GNUNET_DB_QueryStatus
- (*delete_order)(void *cls,
- const char *instance_id,
- const char *order_id,
- bool force);
+ (*delete_order)(void *cls,
+ const char *instance_id,
+ const char *order_id,
+ bool force);
/**
@@ -2312,12 +2312,12 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_order)(void *cls,
- const char *instance_id,
- const char *order_id,
- struct TALER_ClaimTokenP *claim_token,
- struct TALER_MerchantPostDataHashP *h_post_data,
- json_t **contract_terms);
+ (*lookup_order)(void *cls,
+ const char *instance_id,
+ const char *order_id,
+ struct TALER_ClaimTokenP *claim_token,
+ struct TALER_MerchantPostDataHashP *h_post_data,
+ json_t **contract_terms);
/**
@@ -2331,11 +2331,11 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_order_summary)(void *cls,
- const char *instance_id,
- const char *order_id,
- struct GNUNET_TIME_Timestamp *timestamp,
- uint64_t *order_serial);
+ (*lookup_order_summary)(void *cls,
+ const char *instance_id,
+ const char *order_id,
+ struct GNUNET_TIME_Timestamp *timestamp,
+ uint64_t *order_serial);
/**
@@ -2349,11 +2349,11 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_orders)(void *cls,
- const char *instance_id,
- const struct TALER_MERCHANTDB_OrderFilter *of,
- TALER_MERCHANTDB_OrdersCallback cb,
- void *cb_cls);
+ (*lookup_orders)(void *cls,
+ const char *instance_id,
+ const struct TALER_MERCHANTDB_OrderFilter *of,
+ TALER_MERCHANTDB_OrdersCallback cb,
+ void *cb_cls);
/**
@@ -2372,16 +2372,16 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*insert_order)(void *cls,
- const char *instance_id,
- const char *order_id,
- const char *session_id,
- const struct TALER_MerchantPostDataHashP *h_post_data,
- struct GNUNET_TIME_Timestamp pay_deadline,
- const struct TALER_ClaimTokenP *claim_token,
- const json_t *contract_terms,
- const char *pos_key,
- enum TALER_MerchantConfirmationAlgorithm pos_algorithm);
+ (*insert_order)(void *cls,
+ const char *instance_id,
+ const char *order_id,
+ const char *session_id,
+ const struct TALER_MerchantPostDataHashP *h_post_data,
+ struct GNUNET_TIME_Timestamp pay_deadline,
+ const struct TALER_ClaimTokenP *claim_token,
+ const json_t *contract_terms,
+ const char *pos_key,
+ enum TALER_MerchantConfirmationAlgorithm pos_algorithm);
/**
@@ -2392,9 +2392,9 @@ struct TALER_MERCHANTDB_Plugin
* @param donau_budis JSON object with BUDIs to insert
*/
enum GNUNET_DB_QueryStatus
- (*insert_order_budis)(void *cls,
- const char *order_id,
- const json_t *donau_budis);
+ (*insert_order_budis)(void *cls,
+ const char *order_id,
+ const json_t *donau_budis);
/**
@@ -2402,13 +2402,15 @@ struct TALER_MERCHANTDB_Plugin
*
* @param cls closure
* @param order_id order ID to insert blinded signatures for
+ * @param i index of the blinded signature in the output array
* @param hash hash of the token
* @param blinded_sigs JSON array of blinded signatures
*/
enum GNUNET_DB_QueryStatus
- (*insert_order_blinded_sigs)(
+ (*insert_order_blinded_sigs)(
void *cls,
const char *order_id,
+ uint32_t i,
const struct GNUNET_HashCode *hash,
const struct GNUNET_CRYPTO_BlindedSignature *blind_sig);
@@ -2424,8 +2426,8 @@ struct TALER_MERCHANTDB_Plugin
* #GNUNET_DB_STATUS_SUCCESS_ONE_RESULT indicates success
*/
enum GNUNET_DB_QueryStatus
- (*unlock_inventory)(void *cls,
- const struct GNUNET_Uuid *uuid);
+ (*unlock_inventory)(void *cls,
+ const struct GNUNET_Uuid *uuid);
/**
@@ -2441,11 +2443,11 @@ struct TALER_MERCHANTDB_Plugin
* #GNUNET_DB_STATUS_SUCCESS_ONE_RESULT indicates success
*/
enum GNUNET_DB_QueryStatus
- (*insert_order_lock)(void *cls,
- const char *instance_id,
- const char *order_id,
- const char *product_id,
- uint64_t quantity);
+ (*insert_order_lock)(void *cls,
+ const char *instance_id,
+ const char *order_id,
+ const char *product_id,
+ uint64_t quantity);
/**
@@ -2457,7 +2459,7 @@ struct TALER_MERCHANTDB_Plugin
* @param cb_cls closure for @a cb
*/
enum GNUNET_DB_QueryStatus
- (*select_order_blinded_sigs)(
+ (*select_order_blinded_sigs)(
void *cls,
const char *order_id,
TALER_MERCHANTDB_BlindedSigCallback cb,
@@ -2479,7 +2481,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_contract_terms2)(
+ (*lookup_contract_terms2)(
void *cls,
const char *instance_id,
const char *order_id,
@@ -2508,7 +2510,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_contract_terms3)(
+ (*lookup_contract_terms3)(
void *cls,
const char *instance_id,
const char *order_id,
@@ -2534,7 +2536,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_contract_terms)(
+ (*lookup_contract_terms)(
void *cls,
const char *instance_id,
const char *order_id,
@@ -2560,7 +2562,7 @@ struct TALER_MERCHANTDB_Plugin
* is malformed
*/
enum GNUNET_DB_QueryStatus
- (*insert_contract_terms)(
+ (*insert_contract_terms)(
void *cls,
const char *instance_id,
const char *order_id,
@@ -2584,10 +2586,10 @@ struct TALER_MERCHANTDB_Plugin
* is malformed
*/
enum GNUNET_DB_QueryStatus
- (*update_contract_terms)(void *cls,
- const char *instance_id,
- const char *order_id,
- json_t *contract_terms);
+ (*update_contract_terms)(void *cls,
+ const char *instance_id,
+ const char *order_id,
+ json_t *contract_terms);
/**
@@ -2604,10 +2606,10 @@ struct TALER_MERCHANTDB_Plugin
* if locks prevent deletion OR order unknown
*/
enum GNUNET_DB_QueryStatus
- (*delete_contract_terms)(void *cls,
- const char *instance_id,
- const char *order_id,
- struct GNUNET_TIME_Relative legal_expiration);
+ (*delete_contract_terms)(void *cls,
+ const char *instance_id,
+ const char *order_id,
+ struct GNUNET_TIME_Relative legal_expiration);
/**
@@ -2622,12 +2624,12 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_deposits)(void *cls,
- const char *instance_id,
- const struct TALER_PrivateContractHashP *h_contract_terms
- ,
- TALER_MERCHANTDB_DepositsCallback cb,
- void *cb_cls);
+ (*lookup_deposits)(void *cls,
+ const char *instance_id,
+ const struct TALER_PrivateContractHashP *h_contract_terms
+ ,
+ TALER_MERCHANTDB_DepositsCallback cb,
+ void *cb_cls);
/**
@@ -2642,7 +2644,7 @@ struct TALER_MERCHANTDB_Plugin
* @param master_sig signature of @a master_pub over the @a exchange_pub and the dates
*/
enum GNUNET_DB_QueryStatus
- (*insert_exchange_signkey)(
+ (*insert_exchange_signkey)(
void *cls,
const struct TALER_MasterPublicKeyP *master_pub,
const struct TALER_ExchangePublicKeyP *exchange_pub,
@@ -2670,7 +2672,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*insert_deposit_confirmation)(
+ (*insert_deposit_confirmation)(
void *cls,
const char *instance_id,
struct GNUNET_TIME_Timestamp deposit_timestamp,
@@ -2702,7 +2704,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*insert_deposit)(
+ (*insert_deposit)(
void *cls,
uint32_t offset,
uint64_t deposit_confirmation_serial_id,
@@ -2725,11 +2727,11 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_refunds)(void *cls,
- const char *instance_id,
- const struct TALER_PrivateContractHashP *h_contract_terms,
- TALER_MERCHANTDB_RefundCallback rc,
- void *rc_cls);
+ (*lookup_refunds)(void *cls,
+ const char *instance_id,
+ const struct TALER_PrivateContractHashP *h_contract_terms,
+ TALER_MERCHANTDB_RefundCallback rc,
+ void *rc_cls);
/**
@@ -2742,10 +2744,10 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_spent_tokens_by_order)(void *cls,
- uint64_t order_serial,
- TALER_MERCHANTDB_UsedTokensCallback cb,
- void *cb_cls);
+ (*lookup_spent_tokens_by_order)(void *cls,
+ uint64_t order_serial,
+ TALER_MERCHANTDB_UsedTokensCallback cb,
+ void *cb_cls);
/**
@@ -2760,7 +2762,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*mark_contract_paid)(
+ (*mark_contract_paid)(
void *cls,
const char *instance_id,
const struct TALER_PrivateContractHashP *h_contract_terms,
@@ -2784,12 +2786,12 @@ struct TALER_MERCHANTDB_Plugin
* regardless of whether it actually increased the refund
*/
enum GNUNET_DB_QueryStatus
- (*refund_coin)(void *cls,
- const char *instance_id,
- const struct TALER_PrivateContractHashP *h_contract_terms,
- struct GNUNET_TIME_Timestamp refund_timestamp,
- const struct TALER_CoinSpendPublicKeyP *coin_pub,
- const char *reason);
+ (*refund_coin)(void *cls,
+ const char *instance_id,
+ const struct TALER_PrivateContractHashP *h_contract_terms,
+ struct GNUNET_TIME_Timestamp refund_timestamp,
+ const struct TALER_CoinSpendPublicKeyP *coin_pub,
+ const char *reason);
/**
@@ -2803,11 +2805,11 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_order_status)(void *cls,
- const char *instance_id,
- const char *order_id,
- struct TALER_PrivateContractHashP *h_contract_terms,
- bool *paid);
+ (*lookup_order_status)(void *cls,
+ const char *instance_id,
+ const char *order_id,
+ struct TALER_PrivateContractHashP *h_contract_terms,
+ bool *paid);
/**
* Retrieve contract terms given its @a order_serial
@@ -2821,13 +2823,13 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_order_status_by_serial)(void *cls,
- const char *instance_id,
- uint64_t order_serial,
- char **order_id,
- struct TALER_PrivateContractHashP *
- h_contract_terms,
- bool *paid);
+ (*lookup_order_status_by_serial)(void *cls,
+ const char *instance_id,
+ uint64_t order_serial,
+ char **order_id,
+ struct TALER_PrivateContractHashP *
+ h_contract_terms,
+ bool *paid);
/**
@@ -2840,10 +2842,10 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_deposits_by_order)(void *cls,
- uint64_t order_serial,
- TALER_MERCHANTDB_DepositedCoinsCallback cb,
- void *cb_cls);
+ (*lookup_deposits_by_order)(void *cls,
+ uint64_t order_serial,
+ TALER_MERCHANTDB_DepositedCoinsCallback cb,
+ void *cb_cls);
/**
@@ -2857,7 +2859,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_transfer_details_by_order)(
+ (*lookup_transfer_details_by_order)(
void *cls,
uint64_t order_serial,
TALER_MERCHANTDB_OrderTransferDetailsCallback cb,
@@ -2878,7 +2880,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database transaction status
*/
enum GNUNET_DB_QueryStatus
- (*update_transfer_status)(
+ (*update_transfer_status)(
void *cls,
const char *exchange_url,
const struct TALER_WireTransferIdentifierRawP *wtid,
@@ -2903,7 +2905,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database transaction status
*/
enum GNUNET_DB_QueryStatus
- (*finalize_transfer_status)(
+ (*finalize_transfer_status)(
void *cls,
const char *exchange_url,
const struct TALER_WireTransferIdentifierRawP *wtid,
@@ -2926,7 +2928,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*select_open_transfers)(
+ (*select_open_transfers)(
void *cls,
uint64_t limit,
TALER_MERCHANTDB_OpenTransferCallback cb,
@@ -2944,11 +2946,11 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*insert_deposit_to_transfer)(void *cls,
- uint64_t deposit_serial,
- const struct TALER_MerchantWireHashP *h_wire,
- const char *exchange_url,
- const struct TALER_EXCHANGE_DepositData *dd);
+ (*insert_deposit_to_transfer)(void *cls,
+ uint64_t deposit_serial,
+ const struct TALER_MerchantWireHashP *h_wire,
+ const char *exchange_url,
+ const struct TALER_EXCHANGE_DepositData *dd);
/**
@@ -2959,8 +2961,8 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*mark_order_wired)(void *cls,
- uint64_t order_serial);
+ (*mark_order_wired)(void *cls,
+ uint64_t order_serial);
/**
@@ -2986,7 +2988,7 @@ struct TALER_MERCHANTDB_Plugin
* what was already refunded (idempotency!)
*/
enum TALER_MERCHANTDB_RefundStatus
- (*increase_refund)(
+ (*increase_refund)(
void *cls,
const char *instance_id,
const char *order_id,
@@ -3007,7 +3009,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_refunds_detailed)(
+ (*lookup_refunds_detailed)(
void *cls,
const char *instance_id,
const struct TALER_PrivateContractHashP *h_contract_terms,
@@ -3024,7 +3026,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*insert_refund_proof)(
+ (*insert_refund_proof)(
void *cls,
uint64_t refund_serial,
const struct TALER_ExchangeSignatureP *exchange_sig,
@@ -3043,7 +3045,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*insert_spent_token)(
+ (*insert_spent_token)(
void *cls,
const struct TALER_PrivateContractHashP *
h_contract_terms,
@@ -3063,7 +3065,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*insert_issued_token)(
+ (*insert_issued_token)(
void *cls,
const struct TALER_PrivateContractHashP *h_contract_terms,
const struct TALER_TokenIssuePublicKeyHashP *h_issue_pub,
@@ -3080,7 +3082,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_refund_proof)(
+ (*lookup_refund_proof)(
void *cls,
uint64_t refund_serial,
struct TALER_ExchangeSignatureP *exchange_sig,
@@ -3101,7 +3103,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_order_by_fulfillment)(
+ (*lookup_order_by_fulfillment)(
void *cls,
const char *instance_id,
const char *fulfillment_url,
@@ -3119,7 +3121,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*update_wirewatch_progress)(
+ (*update_wirewatch_progress)(
void *cls,
const char *instance,
struct TALER_FullPayto payto_uri,
@@ -3135,7 +3137,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*select_wirewatch_accounts)(
+ (*select_wirewatch_accounts)(
void *cls,
TALER_MERCHANTDB_WirewatchWorkCallback cb,
void *cb_cls);
@@ -3154,7 +3156,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*insert_transfer)(
+ (*insert_transfer)(
void *cls,
const char *instance_id,
const char *exchange_url,
@@ -3175,9 +3177,9 @@ struct TALER_MERCHANTDB_Plugin
* if deletion is prohibited OR transfer is unknown
*/
enum GNUNET_DB_QueryStatus
- (*delete_transfer)(void *cls,
- const char *instance_id,
- uint64_t transfer_serial_id);
+ (*delete_transfer)(void *cls,
+ const char *instance_id,
+ uint64_t transfer_serial_id);
/**
@@ -3191,9 +3193,9 @@ struct TALER_MERCHANTDB_Plugin
* if the transfer record exists
*/
enum GNUNET_DB_QueryStatus
- (*check_transfer_exists)(void *cls,
- const char *instance_id,
- uint64_t transfer_serial_id);
+ (*check_transfer_exists)(void *cls,
+ const char *instance_id,
+ uint64_t transfer_serial_id);
/**
@@ -3206,10 +3208,10 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_account)(void *cls,
- const char *instance_id,
- struct TALER_FullPayto payto_uri,
- uint64_t *account_serial);
+ (*lookup_account)(void *cls,
+ const char *instance_id,
+ struct TALER_FullPayto payto_uri,
+ uint64_t *account_serial);
/**
@@ -3226,7 +3228,7 @@ struct TALER_MERCHANTDB_Plugin
* #GNUNET_DB_STATUS_SUCCESS_ONE_RESULT on success
*/
enum GNUNET_DB_QueryStatus
- (*insert_transfer_details)(
+ (*insert_transfer_details)(
void *cls,
const char *instance_id,
const char *exchange_url,
@@ -3250,7 +3252,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_wire_fee)(
+ (*lookup_wire_fee)(
void *cls,
const struct TALER_MasterPublicKeyP *master_pub,
const char *wire_method,
@@ -3274,7 +3276,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_deposits_by_contract_and_coin)(
+ (*lookup_deposits_by_contract_and_coin)(
void *cls,
const char *instance_id,
const struct TALER_PrivateContractHashP *h_contract_terms,
@@ -3294,7 +3296,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_transfer_summary)(
+ (*lookup_transfer_summary)(
void *cls,
const char *exchange_url,
const struct TALER_WireTransferIdentifierRawP *wtid,
@@ -3313,7 +3315,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_transfer_details)(
+ (*lookup_transfer_details)(
void *cls,
const char *exchange_url,
const struct TALER_WireTransferIdentifierRawP *wtid,
@@ -3338,7 +3340,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_transfers)(
+ (*lookup_transfers)(
void *cls,
const char *instance_id,
struct TALER_FullPayto payto_uri,
@@ -3369,7 +3371,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_expected_transfers)(
+ (*lookup_expected_transfers)(
void *cls,
const char *instance_id,
struct TALER_FullPayto payto_uri,
@@ -3397,7 +3399,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status code
*/
enum GNUNET_DB_QueryStatus
- (*store_wire_fee_by_exchange)(
+ (*store_wire_fee_by_exchange)(
void *cls,
const struct TALER_MasterPublicKeyP *master_pub,
const struct GNUNET_HashCode *h_wire_method,
@@ -3415,7 +3417,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status code
*/
enum GNUNET_DB_QueryStatus
- (*delete_exchange_accounts)(
+ (*delete_exchange_accounts)(
void *cls,
const struct TALER_MasterPublicKeyP *master_pub);
@@ -3430,7 +3432,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status code
*/
enum GNUNET_DB_QueryStatus
- (*select_accounts_by_exchange)(
+ (*select_accounts_by_exchange)(
void *cls,
const struct TALER_MasterPublicKeyP *master_pub,
TALER_MERCHANTDB_ExchangeAccountCallback cb,
@@ -3450,7 +3452,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status code
*/
enum GNUNET_DB_QueryStatus
- (*insert_exchange_account)(
+ (*insert_exchange_account)(
void *cls,
const struct TALER_MasterPublicKeyP *master_pub,
const struct TALER_FullPayto payto_uri,
@@ -3470,10 +3472,10 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_templates)(void *cls,
- const char *instance_id,
- TALER_MERCHANTDB_TemplatesCallback cb,
- void *cb_cls);
+ (*lookup_templates)(void *cls,
+ const char *instance_id,
+ TALER_MERCHANTDB_TemplatesCallback cb,
+ void *cb_cls);
/**
@@ -3487,10 +3489,10 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_template)(void *cls,
- const char *instance_id,
- const char *template_id,
- struct TALER_MERCHANTDB_TemplateDetails *td);
+ (*lookup_template)(void *cls,
+ const char *instance_id,
+ const char *template_id,
+ struct TALER_MERCHANTDB_TemplateDetails *td);
/**
* Delete information about a template.
@@ -3502,9 +3504,9 @@ struct TALER_MERCHANTDB_Plugin
* if template unknown.
*/
enum GNUNET_DB_QueryStatus
- (*delete_template)(void *cls,
- const char *instance_id,
- const char *template_id);
+ (*delete_template)(void *cls,
+ const char *instance_id,
+ const char *template_id);
/**
@@ -3518,11 +3520,11 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*insert_template)(void *cls,
- const char *instance_id,
- const char *template_id,
- uint64_t otp_serial_id,
- const struct TALER_MERCHANTDB_TemplateDetails *td);
+ (*insert_template)(void *cls,
+ const char *instance_id,
+ const char *template_id,
+ uint64_t otp_serial_id,
+ const struct TALER_MERCHANTDB_TemplateDetails *td);
/**
@@ -3537,10 +3539,10 @@ struct TALER_MERCHANTDB_Plugin
* does not yet exist.
*/
enum GNUNET_DB_QueryStatus
- (*update_template)(void *cls,
- const char *instance_id,
- const char *template_id,
- const struct TALER_MERCHANTDB_TemplateDetails *td);
+ (*update_template)(void *cls,
+ const char *instance_id,
+ const char *template_id,
+ const struct TALER_MERCHANTDB_TemplateDetails *td);
/**
@@ -3553,9 +3555,9 @@ struct TALER_MERCHANTDB_Plugin
* if template unknown.
*/
enum GNUNET_DB_QueryStatus
- (*delete_otp)(void *cls,
- const char *instance_id,
- const char *otp_id);
+ (*delete_otp)(void *cls,
+ const char *instance_id,
+ const char *otp_id);
/**
* Insert details about a particular OTP device.
@@ -3567,10 +3569,10 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*insert_otp)(void *cls,
- const char *instance_id,
- const char *otp_id,
- const struct TALER_MERCHANTDB_OtpDeviceDetails *td);
+ (*insert_otp)(void *cls,
+ const char *instance_id,
+ const char *otp_id,
+ const struct TALER_MERCHANTDB_OtpDeviceDetails *td);
/**
@@ -3585,10 +3587,10 @@ struct TALER_MERCHANTDB_Plugin
* does not yet exist.
*/
enum GNUNET_DB_QueryStatus
- (*update_otp)(void *cls,
- const char *instance_id,
- const char *otp_id,
- const struct TALER_MERCHANTDB_OtpDeviceDetails *td);
+ (*update_otp)(void *cls,
+ const char *instance_id,
+ const char *otp_id,
+ const struct TALER_MERCHANTDB_OtpDeviceDetails *td);
/**
* Lookup all of the OTP devices the given instance has configured.
@@ -3600,10 +3602,10 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_otp_devices)(void *cls,
- const char *instance_id,
- TALER_MERCHANTDB_OtpDeviceCallback cb,
- void *cb_cls);
+ (*lookup_otp_devices)(void *cls,
+ const char *instance_id,
+ TALER_MERCHANTDB_OtpDeviceCallback cb,
+ void *cb_cls);
/**
@@ -3617,10 +3619,10 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*select_otp)(void *cls,
- const char *instance_id,
- const char *otp_id,
- struct TALER_MERCHANTDB_OtpDeviceDetails *td);
+ (*select_otp)(void *cls,
+ const char *instance_id,
+ const char *otp_id,
+ struct TALER_MERCHANTDB_OtpDeviceDetails *td);
/**
@@ -3632,10 +3634,10 @@ struct TALER_MERCHANTDB_Plugin
* @param[out] serial set to the OTP device serial number * @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*select_otp_serial)(void *cls,
- const char *instance_id,
- const char *otp_id,
- uint64_t *serial);
+ (*select_otp_serial)(void *cls,
+ const char *instance_id,
+ const char *otp_id,
+ uint64_t *serial);
/**
@@ -3648,9 +3650,9 @@ struct TALER_MERCHANTDB_Plugin
* if template unknown.
*/
enum GNUNET_DB_QueryStatus
- (*delete_category)(void *cls,
- const char *instance_id,
- uint64_t category_id);
+ (*delete_category)(void *cls,
+ const char *instance_id,
+ uint64_t category_id);
/**
* Insert new product category.
@@ -3663,11 +3665,11 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*insert_category)(void *cls,
- const char *instance_id,
- const char *category_name,
- const json_t *category_name_i18n,
- uint64_t *category_id);
+ (*insert_category)(void *cls,
+ const char *instance_id,
+ const char *category_name,
+ const json_t *category_name_i18n,
+ uint64_t *category_id);
/**
@@ -3682,11 +3684,11 @@ struct TALER_MERCHANTDB_Plugin
* does not yet exist.
*/
enum GNUNET_DB_QueryStatus
- (*update_category)(void *cls,
- const char *instance_id,
- uint64_t category_id,
- const char *category_name,
- const json_t *category_name_i18n);
+ (*update_category)(void *cls,
+ const char *instance_id,
+ uint64_t category_id,
+ const char *category_name,
+ const json_t *category_name_i18n);
/**
* Lookup all of the product categories the given instance has configured.
@@ -3698,10 +3700,10 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_categories)(void *cls,
- const char *instance_id,
- TALER_MERCHANTDB_CategoriesCallback cb,
- void *cb_cls);
+ (*lookup_categories)(void *cls,
+ const char *instance_id,
+ TALER_MERCHANTDB_CategoriesCallback cb,
+ void *cb_cls);
/**
@@ -3717,12 +3719,12 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*select_category)(void *cls,
- const char *instance_id,
- uint64_t category_id,
- struct TALER_MERCHANTDB_CategoryDetails *cd,
- size_t *num_products,
- char **products);
+ (*select_category)(void *cls,
+ const char *instance_id,
+ uint64_t category_id,
+ struct TALER_MERCHANTDB_CategoryDetails *cd,
+ size_t *num_products,
+ char **products);
/**
@@ -3736,11 +3738,11 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*select_category_by_name)(void *cls,
- const char *instance_id,
- const char *category_name,
- json_t **name_i18n,
- uint64_t *category_id);
+ (*select_category_by_name)(void *cls,
+ const char *instance_id,
+ const char *category_name,
+ json_t **name_i18n,
+ uint64_t *category_id);
/**
@@ -3753,10 +3755,10 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_webhooks)(void *cls,
- const char *instance_id,
- TALER_MERCHANTDB_WebhooksCallback cb,
- void *cb_cls);
+ (*lookup_webhooks)(void *cls,
+ const char *instance_id,
+ TALER_MERCHANTDB_WebhooksCallback cb,
+ void *cb_cls);
/**
@@ -3770,10 +3772,10 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_webhook)(void *cls,
- const char *instance_id,
- const char *webhook_id,
- struct TALER_MERCHANTDB_WebhookDetails *wb);
+ (*lookup_webhook)(void *cls,
+ const char *instance_id,
+ const char *webhook_id,
+ struct TALER_MERCHANTDB_WebhookDetails *wb);
/**
* Delete information about a webhook.
@@ -3785,9 +3787,9 @@ struct TALER_MERCHANTDB_Plugin
* if webhook unknown.
*/
enum GNUNET_DB_QueryStatus
- (*delete_webhook)(void *cls,
- const char *instance_id,
- const char *webhook_id);
+ (*delete_webhook)(void *cls,
+ const char *instance_id,
+ const char *webhook_id);
/**
@@ -3800,10 +3802,10 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*insert_webhook)(void *cls,
- const char *instance_id,
- const char *webhook_id,
- const struct TALER_MERCHANTDB_WebhookDetails *wb);
+ (*insert_webhook)(void *cls,
+ const char *instance_id,
+ const char *webhook_id,
+ const struct TALER_MERCHANTDB_WebhookDetails *wb);
/**
@@ -3818,10 +3820,10 @@ struct TALER_MERCHANTDB_Plugin
* does not yet exist.
*/
enum GNUNET_DB_QueryStatus
- (*update_webhook)(void *cls,
- const char *instance_id,
- const char *webhook_id,
- const struct TALER_MERCHANTDB_WebhookDetails *wb);
+ (*update_webhook)(void *cls,
+ const char *instance_id,
+ const char *webhook_id,
+ const struct TALER_MERCHANTDB_WebhookDetails *wb);
/**
* Lookup webhook by event
@@ -3834,11 +3836,11 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_webhook_by_event)(void *cls,
- const char *instance_id,
- const char *event_type,
- TALER_MERCHANTDB_WebhookDetailCallback cb,
- void *cb_cls);
+ (*lookup_webhook_by_event)(void *cls,
+ const char *instance_id,
+ const char *event_type,
+ TALER_MERCHANTDB_WebhookDetailCallback cb,
+ void *cb_cls);
/**
* Insert webhook in the pending webhook.
@@ -3853,13 +3855,13 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*insert_pending_webhook)(void *cls,
- const char *instance_id,
- uint64_t webhook_serial,
- const char *url,
- const char *http_method,
- const char *header,
- const char *body);
+ (*insert_pending_webhook)(void *cls,
+ const char *instance_id,
+ uint64_t webhook_serial,
+ const char *url,
+ const char *http_method,
+ const char *header,
+ const char *body);
/**
* Lookup the webhook that need to be send in priority. These webhooks are not successfully
* send.
@@ -3870,9 +3872,9 @@ struct TALER_MERCHANTDB_Plugin
*/
// WHERE next_attempt <= now ORDER BY next_attempt ASC
enum GNUNET_DB_QueryStatus
- (*lookup_pending_webhooks)(void *cls,
- TALER_MERCHANTDB_PendingWebhooksCallback cb,
- void *cb_cls);
+ (*lookup_pending_webhooks)(void *cls,
+ TALER_MERCHANTDB_PendingWebhooksCallback cb,
+ void *cb_cls);
/**
* Lookup future webhook in the pending webhook that need to be send.
@@ -3884,9 +3886,9 @@ struct TALER_MERCHANTDB_Plugin
*/
// ORDER BY next_attempt ASC LIMIT 1
enum GNUNET_DB_QueryStatus
- (*lookup_future_webhook)(void *cls,
- TALER_MERCHANTDB_PendingWebhooksCallback cb,
- void *cb_cls);
+ (*lookup_future_webhook)(void *cls,
+ TALER_MERCHANTDB_PendingWebhooksCallback cb,
+ void *cb_cls);
/**
* Lookup all the webhooks in the pending webhook.
@@ -3901,12 +3903,12 @@ struct TALER_MERCHANTDB_Plugin
*/
// WHERE webhook_pending_serial > min_row ORDER BY webhook_pending_serial ASC LIMIT max_results
enum GNUNET_DB_QueryStatus
- (*lookup_all_webhooks)(void *cls,
- const char *instance_id,
- uint64_t min_row,
- uint32_t max_results,
- TALER_MERCHANTDB_PendingWebhooksCallback cb,
- void *cb_cls);
+ (*lookup_all_webhooks)(void *cls,
+ const char *instance_id,
+ uint64_t min_row,
+ uint32_t max_results,
+ TALER_MERCHANTDB_PendingWebhooksCallback cb,
+ void *cb_cls);
/**
@@ -3918,9 +3920,9 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*update_pending_webhook)(void *cls,
- uint64_t webhook_pending_serial,
- struct GNUNET_TIME_Absolute next_attempt);
+ (*update_pending_webhook)(void *cls,
+ uint64_t webhook_pending_serial,
+ struct GNUNET_TIME_Absolute next_attempt);
// maybe add: http status of failure?
@@ -3933,8 +3935,8 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*delete_pending_webhook)(void *cls,
- uint64_t webhook_pending_serial);
+ (*delete_pending_webhook)(void *cls,
+ uint64_t webhook_pending_serial);
/**
@@ -3947,10 +3949,10 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*select_exchange_keys)(void *cls,
- const char *exchange_url,
- struct GNUNET_TIME_Absolute *first_retry,
- struct TALER_EXCHANGE_Keys **keys);
+ (*select_exchange_keys)(void *cls,
+ const char *exchange_url,
+ struct GNUNET_TIME_Absolute *first_retry,
+ struct TALER_EXCHANGE_Keys **keys);
/**
@@ -3962,9 +3964,9 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*insert_exchange_keys)(void *cls,
- const struct TALER_EXCHANGE_Keys *keys,
- struct GNUNET_TIME_Absolute first_retry);
+ (*insert_exchange_keys)(void *cls,
+ const struct TALER_EXCHANGE_Keys *keys,
+ struct GNUNET_TIME_Absolute first_retry);
/**
@@ -3977,10 +3979,10 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_token_families)(void *cls,
- const char *instance_id,
- TALER_MERCHANTDB_TokenFamiliesCallback cb,
- void *cb_cls);
+ (*lookup_token_families)(void *cls,
+ const char *instance_id,
+ TALER_MERCHANTDB_TokenFamiliesCallback cb,
+ void *cb_cls);
/**
* Lookup details about a particular token family.
@@ -3993,10 +3995,10 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_token_family)(void *cls,
- const char *instance_id,
- const char *token_family_slug,
- struct TALER_MERCHANTDB_TokenFamilyDetails *details);
+ (*lookup_token_family)(void *cls,
+ const char *instance_id,
+ const char *token_family_slug,
+ struct TALER_MERCHANTDB_TokenFamilyDetails *details);
/**
* Delete information about a token family.
@@ -4007,9 +4009,9 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*delete_token_family)(void *cls,
- const char *instance_id,
- const char *token_family_slug);
+ (*delete_token_family)(void *cls,
+ const char *instance_id,
+ const char *token_family_slug);
/**
* Update details about a particular token family.
@@ -4022,7 +4024,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*update_token_family)(
+ (*update_token_family)(
void *cls,
const char *instance_id,
const char *token_family_slug,
@@ -4039,7 +4041,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*insert_token_family)(
+ (*insert_token_family)(
void *cls,
const char *instance_id,
const char *token_family_slug,
@@ -4059,7 +4061,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_token_family_key)(
+ (*lookup_token_family_key)(
void *cls,
const char *instance_id,
const char *token_family_slug,
@@ -4081,7 +4083,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_token_family_keys)(
+ (*lookup_token_family_keys)(
void *cls,
const char *instance_id,
const char *token_family_slug,
@@ -4106,7 +4108,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*insert_token_family_key)(
+ (*insert_token_family_key)(
void *cls,
const char *merchant_id,
const char *token_family_slug,
@@ -4128,7 +4130,7 @@ struct TALER_MERCHANTDB_Plugin
* @return transaction status
*/
enum GNUNET_DB_QueryStatus
- (*lookup_pending_deposits)(
+ (*lookup_pending_deposits)(
void *cls,
const char *exchange_url,
uint64_t limit,
@@ -4151,7 +4153,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*update_deposit_confirmation_status)(
+ (*update_deposit_confirmation_status)(
void *cls,
uint64_t deposit_serial,
bool retry_needed,
@@ -4170,7 +4172,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*update_donau_instance_receipts_amount)(
+ (*update_donau_instance_receipts_amount)(
void *cls,
uint64_t *donau_instances_serial,
const struct TALER_Amount *new_amount
@@ -4185,7 +4187,7 @@ struct TALER_MERCHANTDB_Plugin
* @param keys Donau keys to insert or update
*/
enum GNUNET_DB_QueryStatus
- (*upsert_donau_keys)(
+ (*upsert_donau_keys)(
void *cls,
const struct DONAU_Keys *keys,
struct GNUNET_TIME_Absolute first_retry
@@ -4199,7 +4201,7 @@ struct TALER_MERCHANTDB_Plugin
* @param[out] keys set to the Donau keys on success
*/
enum GNUNET_DB_QueryStatus
- (*lookup_donau_keys)(
+ (*lookup_donau_keys)(
void *cls,
const char *donau_url,
struct GNUNET_TIME_Absolute *first_retry,
@@ -4222,7 +4224,7 @@ struct TALER_MERCHANTDB_Plugin
* Donau keys
*/
enum GNUNET_DB_QueryStatus
- (*lookup_order_charity)(
+ (*lookup_order_charity)(
void *cls,
const char *instance_id,
const char *donau_url,
@@ -4243,7 +4245,7 @@ struct TALER_MERCHANTDB_Plugin
* @param charity_id charity ID of the Donau instance
*/
enum GNUNET_DB_QueryStatus
- (*insert_donau_instance)(
+ (*insert_donau_instance)(
void *cls,
const char *donau_url,
const struct DONAU_Charity *charity,
@@ -4259,7 +4261,7 @@ struct TALER_MERCHANTDB_Plugin
* @param[out] charity_id set to the charity ID of the Donau instance
*/
enum GNUNET_DB_QueryStatus
- (*select_donau_instance_by_serial)(
+ (*select_donau_instance_by_serial)(
void *cls,
uint64_t serial,
char **donau_url,
@@ -4273,7 +4275,7 @@ struct TALER_MERCHANTDB_Plugin
* @param cb_cls closure for @a cb
*/
enum GNUNET_DB_QueryStatus
- (*select_donau_instances)(
+ (*select_donau_instances)(
void *cls,
const char *id,
TALER_MERCHANTDB_DonauInstanceCallback cb,
@@ -4288,7 +4290,7 @@ struct TALER_MERCHANTDB_Plugin
* @param cb_cls closure for @a cb
*/
enum GNUNET_DB_QueryStatus
- (*select_donau_instances_filtered)(
+ (*select_donau_instances_filtered)(
void *cls,
const char *currency,
TALER_MERCHANTDB_DonauInstanceFilteredCallback cb,
@@ -4301,7 +4303,7 @@ struct TALER_MERCHANTDB_Plugin
* @param charity_id charity ID of the Donau instance to delete
*/
enum GNUNET_DB_QueryStatus
- (*delete_donau_instance)(
+ (*delete_donau_instance)(
void *cls,
const char *id,
const uint64_t charity_id
@@ -4316,7 +4318,7 @@ struct TALER_MERCHANTDB_Plugin
* @param charity_id charity ID of the Donau instance
*/
enum GNUNET_DB_QueryStatus
- (*update_donau_instance)(
+ (*update_donau_instance)(
void *cls,
const char *donau_url,
const struct DONAU_Charity *charity,
@@ -4334,7 +4336,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_statistics_amount_by_bucket)(
+ (*lookup_statistics_amount_by_bucket)(
void *cls,
const char *instance_id,
const char *slug,
@@ -4353,7 +4355,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_statistics_counter_by_bucket)(
+ (*lookup_statistics_counter_by_bucket)(
void *cls,
const char *instance_id,
const char *slug,
@@ -4371,7 +4373,7 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_statistics_amount_by_interval)(
+ (*lookup_statistics_amount_by_interval)(
void *cls,
const char *instance_id,
const char *slug,
@@ -4388,12 +4390,12 @@ struct TALER_MERCHANTDB_Plugin
* @return database result code
*/
enum GNUNET_DB_QueryStatus
- (*lookup_statistics_counter_by_interval)(void *cls,
- const char *instance_id,
- const char *slug,
- TALER_MERCHANTDB_CounterByIntervalStatisticsCallback
- cb,
- void *cb_cls);
+ (*lookup_statistics_counter_by_interval)(void *cls,
+ const char *instance_id,
+ const char *slug,
+ TALER_MERCHANTDB_CounterByIntervalStatisticsCallback
+ cb,
+ void *cb_cls);
};
#endif