merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit 64978c91814964429d25b0b9618d10980d8625a0
parent 898aad8e85efa9fcb3d7f33f305fae8ad4ef5ce4
Author: Christian Grothoff <grothoff@gnunet.org>
Date:   Mon, 26 Jan 2026 04:16:15 +0100

add order change notificaton on reconcilation

Diffstat:
Msrc/backend/taler-merchant-httpd.h | 27---------------------------
Msrc/backenddb/pg_insert_deposit_to_transfer.sql | 2--
Msrc/backenddb/pg_insert_transfer_details.c | 34+++++++++++++++++++++++++++++++++-
Msrc/backenddb/pg_insert_transfer_details.sql | 11++++++-----
Msrc/include/taler_merchantdb_plugin.h | 1105++++++++++++++++++++++++++++++++++++++++---------------------------------------
5 files changed, 605 insertions(+), 574 deletions(-)

diff --git a/src/backend/taler-merchant-httpd.h b/src/backend/taler-merchant-httpd.h @@ -254,33 +254,6 @@ GNUNET_NETWORK_STRUCT_BEGIN /** - * Event triggered when an order is paid. - */ -struct TMH_OrderPayEventP -{ - /** - * Type is #TALER_DBEVENT_MERCHANT_ORDER_PAID - */ - struct GNUNET_DB_EventHeaderP header; - - /** - * Always zero (for alignment). - */ - uint32_t reserved GNUNET_PACKED; - - /** - * Merchant's public key - */ - struct TALER_MerchantPublicKeyP merchant_pub; - - /** - * Hash of the order ID. - */ - struct GNUNET_HashCode h_order_id; -}; - - -/** * Event triggered when a fulfillment URL is * bound to a session (as paid). */ diff --git a/src/backenddb/pg_insert_deposit_to_transfer.sql b/src/backenddb/pg_insert_deposit_to_transfer.sql @@ -32,10 +32,8 @@ DECLARE my_signkey_serial INT8; my_account_serial INT8; my_decose INT8; - my_order_serial INT8; my_expected_credit_serial INT8; my_wire_pending_cleared BOOL; - my_order_id TEXT; BEGIN -- Just to return something (for now). out_dummy=FALSE; diff --git a/src/backenddb/pg_insert_transfer_details.c b/src/backenddb/pg_insert_transfer_details.c @@ -1,6 +1,6 @@ /* This file is part of TALER - Copyright (C) 2022 Taler Systems SA + Copyright (C) 2022, 2026 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 @@ -69,6 +69,8 @@ TMH_PG_insert_transfer_details ( ",out_no_exchange" ",out_duplicate" ",out_conflict" + ",out_order_id" + ",out_merchant_pub" " FROM merchant_do_insert_transfer_details" " ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13);"); @@ -119,6 +121,8 @@ TMH_PG_insert_transfer_details ( bool no_account; bool no_exchange; bool conflict; + char *order_id = NULL; + struct TALER_MerchantPublicKeyP merchant_pub; struct GNUNET_PQ_ResultSpec rs[] = { GNUNET_PQ_result_spec_bool ("out_no_instance", &no_instance), @@ -130,6 +134,14 @@ TMH_PG_insert_transfer_details ( &duplicate), GNUNET_PQ_result_spec_bool ("out_conflict", &conflict), + GNUNET_PQ_result_spec_allow_null ( + GNUNET_PQ_result_spec_string ("out_order_id", + &order_id), + NULL), + GNUNET_PQ_result_spec_allow_null ( + GNUNET_PQ_result_spec_auto_from_type ("out_merchant_pub", + &merchant_pub), + NULL), GNUNET_PQ_result_spec_end }; @@ -149,6 +161,26 @@ TMH_PG_insert_transfer_details ( qs); return qs; } + if (NULL != order_id) + { + struct TMH_OrderPayEventP pay_eh = { + .header.size = htons (sizeof (pay_eh)), + .header.type = htons (TALER_DBEVENT_MERCHANT_ORDER_STATUS_CHANGED), + .merchant_pub = merchant_pub + }; + + GNUNET_log (GNUNET_ERROR_TYPE_INFO, + "Notifying clients about status change of order %s\n", + order_id); + GNUNET_CRYPTO_hash (order_id, + strlen (order_id), + &pay_eh.h_order_id); + GNUNET_PQ_event_notify (pg->conn, + &pay_eh.header, + NULL, + 0); + GNUNET_free (order_id); + } GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Transfer details inserted: %s%s%s%s%s\n", no_instance ? "no instance " : "", diff --git a/src/backenddb/pg_insert_transfer_details.sql b/src/backenddb/pg_insert_transfer_details.sql @@ -34,7 +34,9 @@ CREATE FUNCTION merchant_do_insert_transfer_details ( OUT out_no_account BOOL, OUT out_no_exchange BOOL, OUT out_duplicate BOOL, - OUT out_conflict BOOL) + OUT out_conflict BOOL, + OUT out_order_id TEXT, + OUT out_merchant_pub BYTEA) LANGUAGE plpgsql AS $$ DECLARE @@ -60,11 +62,10 @@ DECLARE BEGIN -- Which instance are we using? -SELECT merchant_serial - INTO my_merchant_id +SELECT merchant_serial, merchant_pub + INTO my_merchant_id, out_merchant_pub FROM merchant_instances WHERE merchant_id=in_instance_id; - IF NOT FOUND THEN out_no_instance=TRUE; @@ -230,7 +231,7 @@ LOOP INTO my_merchant_serial, my_order_id FROM merchant_contract_terms WHERE order_serial=my_affected_orders.order_serial; - + out_order_id = my_order_id; -- Insert pending webhook if it exists INSERT INTO merchant_pending_webhooks (merchant_serial diff --git a/src/include/taler_merchantdb_plugin.h b/src/include/taler_merchantdb_plugin.h @@ -63,6 +63,33 @@ struct TALER_MERCHANTDB_MerchantKycStatusChangeEventP struct TALER_MerchantWireHashP h_wire; }; +/** + * Event triggered when an order is paid. + */ +struct TMH_OrderPayEventP +{ + /** + * Type is #TALER_DBEVENT_MERCHANT_ORDER_PAID + */ + struct GNUNET_DB_EventHeaderP header; + + /** + * Always zero (for alignment). + */ + uint32_t reserved GNUNET_PACKED; + + /** + * Merchant's public key + */ + struct TALER_MerchantPublicKeyP merchant_pub; + + /** + * Hash of the order ID. + */ + struct GNUNET_HashCode h_order_id; +}; + + GNUNET_NETWORK_STRUCT_END /** @@ -1908,7 +1935,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. @@ -1917,7 +1944,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. @@ -1926,7 +1953,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 @@ -1935,7 +1962,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. @@ -1998,8 +2025,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'. @@ -2010,8 +2037,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. @@ -2028,7 +2055,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. @@ -2039,10 +2066,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. @@ -2054,11 +2081,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. @@ -2068,9 +2095,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); /** @@ -2085,12 +2112,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); /** @@ -2101,7 +2128,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); @@ -2119,7 +2146,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, @@ -2140,7 +2167,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, @@ -2160,12 +2187,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. @@ -2176,7 +2203,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); @@ -2190,7 +2217,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); @@ -2207,7 +2234,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, @@ -2225,7 +2252,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, @@ -2242,7 +2269,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, @@ -2259,7 +2286,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, @@ -2274,7 +2301,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); @@ -2287,8 +2314,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. @@ -2298,8 +2325,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 @@ -2311,7 +2338,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); @@ -2325,9 +2352,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); /** @@ -2339,9 +2366,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); /** @@ -2360,7 +2387,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, @@ -2407,7 +2434,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, @@ -2438,7 +2465,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, @@ -2469,7 +2496,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, @@ -2499,7 +2526,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, @@ -2543,15 +2570,15 @@ 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, - const char *category_filter, - const char *name_filter, - const char *description_filter, - TALER_MERCHANTDB_ProductsCallback cb, - void *cb_cls); + (*lookup_products)(void *cls, + const char *instance_id, + uint64_t offset, + int64_t limit, + const char *category_filter, + const char *name_filter, + const char *description_filter, + TALER_MERCHANTDB_ProductsCallback cb, + void *cb_cls); /** @@ -2564,10 +2591,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 inventory details for all products of an instance. @@ -2579,10 +2606,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_inventory_products)(void *cls, - const char *instance_id, - TALER_MERCHANTDB_InventoryProductCallback cb, - void *cb_cls); + (*lookup_inventory_products)(void *cls, + const char *instance_id, + TALER_MERCHANTDB_InventoryProductCallback cb, + void *cb_cls); /** * Lookup inventory details for a subset of products. @@ -2598,7 +2625,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_inventory_products_filtered)( + (*lookup_inventory_products_filtered)( void *cls, const char *instance_id, const char *const *product_ids, @@ -2622,12 +2649,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); /** * Lookup product image by its hash. @@ -2639,10 +2666,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_product_image_by_hash)(void *cls, - const char *instance_id, - const char *image_hash, - char **image); + (*lookup_product_image_by_hash)(void *cls, + const char *instance_id, + const char *image_hash, + char **image); /** * Delete information about a product. Note that the transaction must @@ -2655,9 +2682,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. @@ -2677,17 +2704,17 @@ 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, - bool *no_group, - bool *no_pot); + (*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, + bool *no_group, + bool *no_pot); /** * Update details about a particular product. Note that the @@ -2713,20 +2740,20 @@ 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, - bool *no_group, - bool *no_pot); + (*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, + bool *no_group, + bool *no_pot); /** @@ -2745,13 +2772,13 @@ 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, - uint32_t quantity_frac, - 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, + uint32_t quantity_frac, + struct GNUNET_TIME_Timestamp expiration_time); /** @@ -2763,7 +2790,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*expire_locks)(void *cls); + (*expire_locks)(void *cls); /** @@ -2778,10 +2805,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); /** @@ -2798,12 +2825,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); /** @@ -2817,11 +2844,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); /** @@ -2835,11 +2862,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); /** @@ -2858,16 +2885,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); /** @@ -2880,7 +2907,7 @@ struct TALER_MERCHANTDB_Plugin * @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, @@ -2899,8 +2926,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); /** @@ -2918,12 +2945,12 @@ 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, - uint32_t quantity_frac); + (*insert_order_lock)(void *cls, + const char *instance_id, + const char *order_id, + const char *product_id, + uint64_t quantity, + uint32_t quantity_frac); /** @@ -2935,7 +2962,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, @@ -2957,7 +2984,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, @@ -2986,7 +3013,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, @@ -3012,7 +3039,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, @@ -3038,7 +3065,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, @@ -3062,10 +3089,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); /** @@ -3082,10 +3109,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); /** @@ -3100,12 +3127,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); /** @@ -3120,7 +3147,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, @@ -3148,7 +3175,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, @@ -3180,7 +3207,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, @@ -3203,11 +3230,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); /** @@ -3220,10 +3247,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); /** @@ -3238,7 +3265,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, @@ -3259,7 +3286,7 @@ struct TALER_MERCHANTDB_Plugin * @return transaction status */ enum GNUNET_DB_QueryStatus - (*update_contract_session)( + (*update_contract_session)( void *cls, const char *instance_id, const struct TALER_PrivateContractHashP *h_contract_terms, @@ -3284,12 +3311,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); /** @@ -3303,11 +3330,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 @@ -3321,13 +3348,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); /** @@ -3340,10 +3367,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); /** @@ -3357,7 +3384,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, @@ -3378,7 +3405,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, @@ -3403,7 +3430,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, @@ -3426,7 +3453,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, @@ -3444,11 +3471,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); /** @@ -3459,8 +3486,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); /** @@ -3486,7 +3513,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, @@ -3507,7 +3534,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, @@ -3524,7 +3551,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, @@ -3543,7 +3570,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, @@ -3563,7 +3590,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, @@ -3580,7 +3607,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, @@ -3601,7 +3628,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, @@ -3619,7 +3646,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, @@ -3635,7 +3662,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); @@ -3654,7 +3681,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, @@ -3675,9 +3702,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); /** @@ -3691,9 +3718,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); /** @@ -3706,10 +3733,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); /** @@ -3726,7 +3753,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, @@ -3750,7 +3777,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, @@ -3774,7 +3801,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, @@ -3794,7 +3821,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, @@ -3813,7 +3840,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, @@ -3838,7 +3865,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, @@ -3869,7 +3896,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, @@ -3897,7 +3924,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, @@ -3915,7 +3942,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); @@ -3930,7 +3957,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, @@ -3950,7 +3977,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, @@ -3970,10 +3997,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); /** @@ -3987,10 +4014,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. @@ -4002,9 +4029,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); /** @@ -4018,11 +4045,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); /** @@ -4037,10 +4064,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); /** @@ -4053,9 +4080,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. @@ -4067,10 +4094,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); /** @@ -4085,10 +4112,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. @@ -4100,10 +4127,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); /** @@ -4117,10 +4144,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); /** @@ -4132,10 +4159,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); /** * Delete information about a measurement unit. @@ -4149,12 +4176,12 @@ struct TALER_MERCHANTDB_Plugin * @return DB status code */ enum GNUNET_DB_QueryStatus - (*delete_unit)(void *cls, - const char *instance_id, - const char *unit_id, - bool *no_instance, - bool *no_unit, - bool *builtin_conflict); + (*delete_unit)(void *cls, + const char *instance_id, + const char *unit_id, + bool *no_instance, + bool *no_unit, + bool *builtin_conflict); /** * Insert a measurement unit definition. @@ -4168,12 +4195,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_unit)(void *cls, - const char *instance_id, - const struct TALER_MERCHANTDB_UnitDetails *ud, - bool *no_instance, - bool *conflict, - uint64_t *unit_serial); + (*insert_unit)(void *cls, + const char *instance_id, + const struct TALER_MERCHANTDB_UnitDetails *ud, + bool *no_instance, + bool *conflict, + uint64_t *unit_serial); /** * Update a measurement unit definition. @@ -4194,19 +4221,19 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_unit)(void *cls, - const char *instance_id, - const char *unit_id, - const char *unit_name_long, - const json_t *unit_name_long_i18n, - const char *unit_name_short, - const json_t *unit_name_short_i18n, - const bool *unit_allow_fraction, - const uint32_t *unit_precision_level, - const bool *unit_active, - bool *no_instance, - bool *no_unit, - bool *builtin_conflict); + (*update_unit)(void *cls, + const char *instance_id, + const char *unit_id, + const char *unit_name_long, + const json_t *unit_name_long_i18n, + const char *unit_name_short, + const json_t *unit_name_short_i18n, + const bool *unit_allow_fraction, + const uint32_t *unit_precision_level, + const bool *unit_active, + bool *no_instance, + bool *no_unit, + bool *builtin_conflict); /** * Lookup all measurement units of an instance. @@ -4218,10 +4245,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_units)(void *cls, - const char *instance_id, - TALER_MERCHANTDB_UnitsCallback cb, - void *cb_cls); + (*lookup_units)(void *cls, + const char *instance_id, + TALER_MERCHANTDB_UnitsCallback cb, + void *cb_cls); /** * Lookup custom measurement units by name. @@ -4235,12 +4262,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_custom_units_by_names)(void *cls, - const char *instance_id, - const char *const *units, - size_t num_units, - TALER_MERCHANTDB_UnitsCallback cb, - void *cb_cls); + (*lookup_custom_units_by_names)(void *cls, + const char *instance_id, + const char *const *units, + size_t num_units, + TALER_MERCHANTDB_UnitsCallback cb, + void *cb_cls); /** * Lookup a single measurement unit. * @@ -4251,10 +4278,10 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_unit)(void *cls, - const char *instance_id, - const char *unit_id, - struct TALER_MERCHANTDB_UnitDetails *ud); + (*select_unit)(void *cls, + const char *instance_id, + const char *unit_id, + struct TALER_MERCHANTDB_UnitDetails *ud); /** @@ -4267,9 +4294,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. @@ -4282,11 +4309,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); /** @@ -4301,11 +4328,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. @@ -4317,10 +4344,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); /** * Lookup product categories by ID. @@ -4334,12 +4361,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_categories_by_ids)(void *cls, - const char *instance_id, - const uint64_t *category_ids, - size_t num_category_ids, - TALER_MERCHANTDB_CategoriesCallback cb, - void *cb_cls); + (*lookup_categories_by_ids)(void *cls, + const char *instance_id, + const uint64_t *category_ids, + size_t num_category_ids, + TALER_MERCHANTDB_CategoriesCallback cb, + void *cb_cls); /** @@ -4355,12 +4382,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); /** @@ -4374,11 +4401,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); /** @@ -4391,10 +4418,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); /** @@ -4408,10 +4435,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. @@ -4423,9 +4450,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); /** @@ -4438,10 +4465,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); /** @@ -4456,10 +4483,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 @@ -4472,11 +4499,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. @@ -4491,13 +4518,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. @@ -4508,9 +4535,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. @@ -4522,9 +4549,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. @@ -4539,12 +4566,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); /** @@ -4556,9 +4583,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? @@ -4571,8 +4598,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); /** @@ -4585,10 +4612,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); /** @@ -4600,9 +4627,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); /** @@ -4615,10 +4642,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. @@ -4631,10 +4658,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. @@ -4645,9 +4672,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. @@ -4660,7 +4687,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, @@ -4677,7 +4704,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, @@ -4697,7 +4724,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, @@ -4719,7 +4746,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, @@ -4744,7 +4771,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, @@ -4766,7 +4793,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, @@ -4789,7 +4816,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, @@ -4808,7 +4835,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 @@ -4835,7 +4862,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_mfa_challenge)( + (*lookup_mfa_challenge)( void *cls, uint64_t challenge_id, const struct TALER_MERCHANT_MFA_BodyHash *h_body, @@ -4865,7 +4892,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*solve_mfa_challenge)( + (*solve_mfa_challenge)( void *cls, uint64_t challenge_id, const struct TALER_MERCHANT_MFA_BodyHash *h_body, @@ -4889,7 +4916,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_mfa_challenge)( + (*update_mfa_challenge)( void *cls, uint64_t challenge_id, const char *code, @@ -4916,7 +4943,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*create_mfa_challenge)( + (*create_mfa_challenge)( void *cls, enum TALER_MERCHANT_MFA_CriticalOperation op, const struct TALER_MERCHANT_MFA_BodyHash *h_body, @@ -4939,7 +4966,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, @@ -4956,7 +4983,7 @@ struct TALER_MERCHANTDB_Plugin * @param charity_id charity ID of the Donau instance */ enum GNUNET_DB_QueryStatus - (*check_donau_instance)( + (*check_donau_instance)( void *cls, const struct TALER_MerchantPublicKeyP *merchant_pub, const char *donau_url, @@ -4972,7 +4999,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, @@ -4989,7 +5016,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, @@ -5005,7 +5032,7 @@ struct TALER_MERCHANTDB_Plugin * @param cb_cls closure for @a cb */ enum GNUNET_DB_QueryStatus - (*select_all_donau_instances)( + (*select_all_donau_instances)( void *cls, TALER_MERCHANTDB_DonauInstanceCallback cb, void *cb_cls); @@ -5020,7 +5047,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, @@ -5034,7 +5061,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, @@ -5056,7 +5083,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, @@ -5074,7 +5101,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); @@ -5088,7 +5115,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, @@ -5103,7 +5130,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, uint64_t charity_id); @@ -5119,7 +5146,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, @@ -5140,7 +5167,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_statistics_amount_by_bucket2)( + (*lookup_statistics_amount_by_bucket2)( void *cls, const char *instance_id, const char *slug, @@ -5161,7 +5188,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, @@ -5181,7 +5208,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_statistics_counter_by_bucket2)( + (*lookup_statistics_counter_by_bucket2)( void *cls, const char *instance_id, const char *prefix, @@ -5202,7 +5229,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, @@ -5220,7 +5247,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_statistics_counter_by_interval)( + (*lookup_statistics_counter_by_interval)( void *cls, const char *instance_id, const char *slug, @@ -5241,12 +5268,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_money_pots)(void *cls, - const char *instance_id, - int64_t limit, - uint64_t offset, - TALER_MERCHANTDB_MoneyPotsCallback cb, - void *cb_cls); + (*select_money_pots)(void *cls, + const char *instance_id, + int64_t limit, + uint64_t offset, + TALER_MERCHANTDB_MoneyPotsCallback cb, + void *cb_cls); /** @@ -5265,11 +5292,11 @@ struct TALER_MERCHANTDB_Plugin * @a pot_missing was initialized to a missing pot */ enum GNUNET_DB_QueryStatus - (*check_money_pots)(void *cls, - const char *instance_id, - unsigned int pots_len, - uint64_t pots[static pots_len], - uint64_t *pot_missing); + (*check_money_pots)(void *cls, + const char *instance_id, + unsigned int pots_len, + uint64_t pots[static pots_len], + uint64_t *pot_missing); /** * Lookup details about a particular money pot. @@ -5287,13 +5314,13 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_money_pot)(void *cls, - const char *instance_id, - uint64_t money_pot_id, - char **name, - char **description, - size_t *pot_total_len, - struct TALER_Amount **pot_totals); + (*select_money_pot)(void *cls, + const char *instance_id, + uint64_t money_pot_id, + char **name, + char **description, + size_t *pot_total_len, + struct TALER_Amount **pot_totals); /** * Delete information about a money pot. @@ -5304,9 +5331,9 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*delete_money_pot)(void *cls, - const char *instance_id, - uint64_t money_pot_id); + (*delete_money_pot)(void *cls, + const char *instance_id, + uint64_t money_pot_id); /** * Update details about a particular money pot. @@ -5327,7 +5354,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_money_pot)( + (*update_money_pot)( void *cls, const char *instance_id, uint64_t money_pot_id, @@ -5354,7 +5381,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*increment_money_pots)( + (*increment_money_pots)( void *cls, const char *instance_id, size_t money_pots_len, @@ -5374,7 +5401,7 @@ struct TALER_MERCHANTDB_Plugin * on conflict (@a name already in use at @a instance_id). */ enum GNUNET_DB_QueryStatus - (*insert_money_pot)( + (*insert_money_pot)( void *cls, const char *instance_id, const char *name, @@ -5396,12 +5423,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_reports)(void *cls, - const char *instance_id, - int64_t limit, - uint64_t offset, - TALER_MERCHANTDB_ReportsCallback cb, - void *cb_cls); + (*select_reports)(void *cls, + const char *instance_id, + int64_t limit, + uint64_t offset, + TALER_MERCHANTDB_ReportsCallback cb, + void *cb_cls); /** @@ -5413,9 +5440,9 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*lookup_reports_pending)(void *cls, - TALER_MERCHANTDB_ReportsPendingCallback cb, - void *cb_cls); + (*lookup_reports_pending)(void *cls, + TALER_MERCHANTDB_ReportsPendingCallback cb, + void *cb_cls); /** * Lookup details about a particular report. @@ -5439,19 +5466,19 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_report)(void *cls, - const char *instance_id, - uint64_t report_id, - char **report_program_section, - char **report_description, - char **mime_type, - char **data_source, - char **target_address, - struct GNUNET_TIME_Relative *frequency, - struct GNUNET_TIME_Relative *frequency_shift, - struct GNUNET_TIME_Absolute *next_transmission, - enum TALER_ErrorCode *last_error_code, - char **last_error_detail); + (*select_report)(void *cls, + const char *instance_id, + uint64_t report_id, + char **report_program_section, + char **report_description, + char **mime_type, + char **data_source, + char **target_address, + struct GNUNET_TIME_Relative *frequency, + struct GNUNET_TIME_Relative *frequency_shift, + struct GNUNET_TIME_Absolute *next_transmission, + enum TALER_ErrorCode *last_error_code, + char **last_error_detail); /** * Check that a particular report is scheduled under the @@ -5468,12 +5495,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*check_report)(void *cls, - uint64_t report_id, - const struct TALER_MERCHANT_ReportToken *report_token, - const char *mime_type, - char **instance_id, - char **data_source); + (*check_report)(void *cls, + uint64_t report_id, + const struct TALER_MERCHANT_ReportToken *report_token, + const char *mime_type, + char **instance_id, + char **data_source); /** @@ -5485,9 +5512,9 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*delete_report)(void *cls, - const char *instance_id, - uint64_t report_id); + (*delete_report)(void *cls, + const char *instance_id, + uint64_t report_id); /** * Update transmission status about a particular report. @@ -5501,7 +5528,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_report_status)( + (*update_report_status)( void *cls, const char *instance_id, uint64_t report_id, @@ -5529,7 +5556,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_report)( + (*update_report)( void *cls, const char *instance_id, uint64_t report_id, @@ -5561,7 +5588,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*insert_report)( + (*insert_report)( void *cls, const char *instance_id, const char *report_program_section, @@ -5589,12 +5616,12 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*select_product_groups)(void *cls, - const char *instance_id, - int64_t limit, - uint64_t offset, - TALER_MERCHANTDB_ProductGroupsCallback cb, - void *cb_cls); + (*select_product_groups)(void *cls, + const char *instance_id, + int64_t limit, + uint64_t offset, + TALER_MERCHANTDB_ProductGroupsCallback cb, + void *cb_cls); /** * Delete information about a product group. @@ -5605,9 +5632,9 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*delete_product_group)(void *cls, - const char *instance_id, - uint64_t product_group_id); + (*delete_product_group)(void *cls, + const char *instance_id, + uint64_t product_group_id); /** * Update details about a particular product group. @@ -5621,7 +5648,7 @@ struct TALER_MERCHANTDB_Plugin * @return database result code */ enum GNUNET_DB_QueryStatus - (*update_product_group)( + (*update_product_group)( void *cls, const char *instance_id, uint64_t product_group_id, @@ -5642,7 +5669,7 @@ struct TALER_MERCHANTDB_Plugin * on conflict (@a name already in use at @a instance_id). */ enum GNUNET_DB_QueryStatus - (*insert_product_group)( + (*insert_product_group)( void *cls, const char *instance_id, const char *name,