summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2022-04-12 11:58:21 +0200
committerChristian Grothoff <christian@grothoff.org>2022-04-12 11:58:21 +0200
commit3893afa49c689288734bfee9091afc1010ae4f11 (patch)
treee1c514c4e1d7ebfbeab49358ea4d065b4bc6c359 /src/include
parentcacb0195015bcffbbdcbd6b2c8a6578911b27df1 (diff)
downloadexchange-3893afa49c689288734bfee9091afc1010ae4f11.tar.gz
exchange-3893afa49c689288734bfee9091afc1010ae4f11.tar.bz2
exchange-3893afa49c689288734bfee9091afc1010ae4f11.zip
-implementing purse merge DB logic
Diffstat (limited to 'src/include')
-rw-r--r--src/include/taler_exchangedb_plugin.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/include/taler_exchangedb_plugin.h b/src/include/taler_exchangedb_plugin.h
index 39fa2ecdf..18f2fd924 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -4628,14 +4628,19 @@ struct TALER_EXCHANGEDB_Plugin
/**
* Function called to approve merging a purse into a
- * reserve by the respective purse merge key.
+ * reserve by the respective purse merge key. The purse
+ * must not have been merged into a different reserve.
*
* @param cls the @e cls of this struct with the plugin-specific state
* @param purse_pub purse to merge
* @param merge_sig signature affirming the merge
* @param merge_timestamp time of the merge
+ * @param reserve_sig signature of the reserve affirming the merge
* @param partner_url URL of the partner exchange, can be NULL if the reserves lives with us
* @param reserve_pub public key of the reserve to credit
+ * @param[out] no_partner set to true if @a partner_url is unknown
+ * @param[out] no_balance set to true if the @a purse_pub is not paid up yet
+ * @param[out] in_conflict set to true if @a purse_pub was merged into a different reserve already
* @return transaction status code
*/
enum GNUNET_DB_QueryStatus
@@ -4644,8 +4649,12 @@ struct TALER_EXCHANGEDB_Plugin
const struct TALER_PurseContractPublicKeyP *purse_pub,
const struct TALER_PurseMergeSignatureP *merge_sig,
const struct GNUNET_TIME_Timestamp merge_timestamp,
+ const struct TALER_ReserveSignatureP *reserve_sig,
const char *partner_url,
- const struct TALER_ReservePublicKeyP *reserve_pub);
+ const struct TALER_ReservePublicKeyP *reserve_pub,
+ bool *no_partner,
+ bool *no_balance,
+ bool *in_conflict);
/**