summaryrefslogtreecommitdiff
path: root/src/mint/mint_db.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mint/mint_db.h')
-rw-r--r--src/mint/mint_db.h84
1 files changed, 79 insertions, 5 deletions
diff --git a/src/mint/mint_db.h b/src/mint/mint_db.h
index 64d72a350..5ed5db96c 100644
--- a/src/mint/mint_db.h
+++ b/src/mint/mint_db.h
@@ -83,6 +83,52 @@ int
TALER_MINT_DB_commit (PGconn *db_conn);
+
+/**
+ * Reserve row. Corresponds to table 'reserves' in the mint's
+ * database. FIXME: not sure this is how we want to store this
+ * information. Also, may currently used in different ways in the
+ * code, so we might need to separate the struct into different ones
+ * depending on the context it is used in.
+ */
+struct Reserve
+{
+ /**
+ * Signature over the purse.
+ * Only valid if (blind_session_missing==GNUNET_YES).
+ */
+ struct GNUNET_CRYPTO_EddsaSignature status_sig;
+
+ /**
+ * Signature with purpose TALER_SIGNATURE_PURSE.
+ * Only valid if (blind_session_missing==GNUNET_YES).
+ */
+ struct GNUNET_CRYPTO_EccSignaturePurpose status_sig_purpose;
+
+ /**
+ * Signing key used to sign the purse.
+ * Only valid if (blind_session_missing==GNUNET_YES).
+ */
+ struct GNUNET_CRYPTO_EddsaPublicKey status_sign_pub;
+
+ /**
+ * Withdraw public key, identifies the purse.
+ * Only the customer knows the corresponding private key.
+ */
+ struct GNUNET_CRYPTO_EddsaPublicKey reserve_pub;
+
+ /**
+ * Remaining balance in the purse. // FIXME: do not use NBO here!
+ */
+ struct TALER_AmountNBO balance;
+
+ /**
+ * Expiration date for the purse.
+ */
+ struct GNUNET_TIME_AbsoluteNBO expiration;
+};
+
+
int
TALER_MINT_DB_get_reserve (PGconn *db_conn,
const struct GNUNET_CRYPTO_EddsaPublicKey *reserve_pub,
@@ -103,6 +149,9 @@ TALER_MINT_DB_update_reserve (PGconn *db_conn,
int fresh);
+
+
+
int
TALER_MINT_DB_insert_refresh_order (PGconn *db_conn,
uint16_t newcoin_index,
@@ -115,17 +164,46 @@ TALER_MINT_DB_get_refresh_session (PGconn *db_conn,
struct RefreshSession *r_session);
+
+
+/**
+ * FIXME
+ */
+struct KnownCoin
+{
+ struct TALER_CoinPublicInfo public_info;
+
+ /**
+ * Refreshing session, only valid if
+ * is_refreshed==1.
+ */
+ struct GNUNET_CRYPTO_EddsaPublicKey refresh_session_pub;
+
+ struct TALER_Amount expended_balance;
+
+ int is_refreshed;
+
+};
+
+
int
TALER_MINT_DB_get_known_coin (PGconn *db_conn,
const struct GNUNET_CRYPTO_EcdsaPublicKey *coin_pub,
struct KnownCoin *known_coin);
-
+// FIXME: what does 'upsert' even mean!?
int
TALER_MINT_DB_upsert_known_coin (PGconn *db_conn,
struct KnownCoin *known_coin);
+int
+TALER_MINT_DB_insert_known_coin (PGconn *db_conn,
+ const struct KnownCoin *known_coin);
+
+
+
+
int
@@ -262,10 +340,6 @@ TALER_MINT_DB_get_deposit (PGconn *db_conn,
struct Deposit *r_deposit);
-int
-TALER_MINT_DB_insert_known_coin (PGconn *db_conn,
- const struct KnownCoin *known_coin);
-
/**
* Get the thread-local database-handle.