diff options
Diffstat (limited to 'src/include/taler_merchantdb_plugin.h')
-rw-r--r-- | src/include/taler_merchantdb_plugin.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/include/taler_merchantdb_plugin.h b/src/include/taler_merchantdb_plugin.h index f995d98f..bca10715 100644 --- a/src/include/taler_merchantdb_plugin.h +++ b/src/include/taler_merchantdb_plugin.h @@ -997,6 +997,46 @@ struct TALER_MERCHANTDB_Plugin const char *session_id); + /** + * Function called during aborts to refund a coin. Marks the + * respective coin as refunded. + * + * @param cls closure + * @param instance_id instance to refund payment for + * @param h_contract_terms hash of the contract to refund coin for + * @param coin_pub public key of the coin to refund (fully) + * @param reason text justifying the refund + * @return transaction status + * #GNUNET_DB_STATUS_SUCCESS_NO_RESULTS if @a coin_pub is unknown to us; + * #GNUNET_DB_STATUS_SUCCESS_ONE_RESULT if the request is valid, + * regardless of whether it actually increased the refund + */ + enum GNUNET_DB_QueryStatus + (*refund_coin)(void *cls, + const char *instance_id, + const struct GNUNET_HashCode *h_contract_terms, + const struct TALER_CoinSpendPublicKeyP *coin_pub, + const char *reason); + + + /** + * Retrieve contract terms given its @a order_id + * + * @param cls closure + * @param instance_id instance's identifier + * @param order_id order to lookup contract for + * @param[out] h_contract_terms set to the hash of the contract. + * @param[out] paid set to the payment status of the contract + * @return transaction status + */ + enum GNUNET_DB_QueryStatus + (*lookup_order_status)(void *cls, + const char *instance_id, + const char *order_id, + struct GNUNET_HashCode *h_contract_terms, + bool *paid); + + /* ****************** OLD API ******************** */ |