aboutsummaryrefslogtreecommitdiff
path: root/src/mintdb
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-09-19 20:02:21 +0200
committerChristian Grothoff <christian@grothoff.org>2015-09-19 20:02:21 +0200
commitf8a730a0ab6db9ca37c652493b844a7a5ff503e0 (patch)
treeffbe4ed079303081dfc5db2e43391fa8ee84a68b /src/mintdb
parent37a84c5af7b466bef1d4ca4b18999e8b6ef590f2 (diff)
fixing #3816: adding 'id' field to uniquely identify each deposit
Diffstat (limited to 'src/mintdb')
-rw-r--r--src/mintdb/plugin_mintdb_postgres.c29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/mintdb/plugin_mintdb_postgres.c b/src/mintdb/plugin_mintdb_postgres.c
index f47e31b43..efb73a321 100644
--- a/src/mintdb/plugin_mintdb_postgres.c
+++ b/src/mintdb/plugin_mintdb_postgres.c
@@ -424,15 +424,10 @@ postgres_create_tables (void *cls,
",ev_sig BYTEA NOT NULL"
")");
/* This table contains the wire transfers the mint is supposed to
- execute to transmit funds to the merchants (and manage refunds).
- TODO: we might want to generate some other primary key
- to internally identify outgoing transactions, as "coin_pub"
- may not be unique if a wallet chooses not to refresh. The
- resulting transaction ID should then be returned to the merchant
- and could be used by the mearchant for further inquriries about
- the deposit's execution. (#3816); */
+ execute to transmit funds to the merchants (and manage refunds). */
SQLEXEC("CREATE TABLE IF NOT EXISTS deposits "
- "(coin_pub BYTEA NOT NULL CHECK (LENGTH(coin_pub)=32)"
+ "(id BIGSERIAL"
+ ",coin_pub BYTEA NOT NULL CHECK (LENGTH(coin_pub)=32)"
",denom_pub BYTEA NOT NULL REFERENCES denominations (pub)"
",denom_sig BYTEA NOT NULL"
",transaction_id INT8 NOT NULL"
@@ -853,6 +848,24 @@ postgres_prepare (PGconn *db_conn)
" (merchant_pub=$3)"
" )",
3, NULL);
+
+ /* Used in #postgres_iterate_deposits() */
+ PREPARE ("deposits_iterate",
+ "SELECT"
+ " id"
+ " amount_with_fee_val"
+ ",amount_with_fee_frac"
+ ",amount_with_fee_curr"
+ ",deposit_fee_val"
+ ",deposit_fee_frac"
+ ",deposit_fee_curr"
+ ",transaction_id"
+ ",h_contract"
+ ",wire"
+ " FROM deposits"
+ " WHERE id>=$1"
+ " LIMIT $2;",
+ 2, NULL);
/* Used in #postgres_get_coin_transactions() to obtain information
about how a coin has been spend with /deposit requests. */
PREPARE ("get_deposit_with_coin_pub",