diff options
Diffstat (limited to 'src/exchangedb')
-rw-r--r-- | src/exchangedb/exchange-0001.sql | 3 | ||||
-rw-r--r-- | src/exchangedb/irbt_callbacks.c | 2 | ||||
-rw-r--r-- | src/exchangedb/lrbt_callbacks.c | 3 | ||||
-rw-r--r-- | src/exchangedb/plugin_exchangedb_postgres.c | 24 | ||||
-rw-r--r-- | src/exchangedb/test_exchangedb.c | 7 |
5 files changed, 35 insertions, 4 deletions
diff --git a/src/exchangedb/exchange-0001.sql b/src/exchangedb/exchange-0001.sql index a8e79335b..66856f60c 100644 --- a/src/exchangedb/exchange-0001.sql +++ b/src/exchangedb/exchange-0001.sql @@ -377,6 +377,7 @@ CREATE TABLE IF NOT EXISTS refresh_revealed_coins ,coin_ev BYTEA NOT NULL -- UNIQUE ,h_coin_ev BYTEA NOT NULL CHECK(LENGTH(h_coin_ev)=64) -- UNIQUE ,ev_sig BYTEA NOT NULL + ,ewv BYTEA NOT NULL -- ,PRIMARY KEY (melt_serial_id, freshcoin_index) -- done per shard ) PARTITION BY HASH (melt_serial_id); @@ -390,6 +391,8 @@ COMMENT ON COLUMN refresh_revealed_coins.freshcoin_index IS 'index of the fresh coin being created (one melt operation may result in multiple fresh coins)'; COMMENT ON COLUMN refresh_revealed_coins.coin_ev IS 'envelope of the new coin to be signed'; +COMMENT ON COLUMN refresh_revealed_coins.ewv + IS 'exchange contributed values in the creation of the fresh coin (see /csr)'; COMMENT ON COLUMN refresh_revealed_coins.h_coin_ev IS 'hash of the envelope of the new coin to be signed (for lookups)'; COMMENT ON COLUMN refresh_revealed_coins.ev_sig diff --git a/src/exchangedb/irbt_callbacks.c b/src/exchangedb/irbt_callbacks.c index 0e0264e89..cb0685ba6 100644 --- a/src/exchangedb/irbt_callbacks.c +++ b/src/exchangedb/irbt_callbacks.c @@ -440,6 +440,8 @@ irbt_cb_table_refresh_revealed_coins ( GNUNET_PQ_query_param_auto_from_type (&h_coin_ev), TALER_PQ_query_param_blinded_denom_sig ( &td->details.refresh_revealed_coins.ev_sig), + TALER_PQ_query_param_exchange_withdraw_values ( + &td->details.refresh_revealed_coins.ewv), GNUNET_PQ_query_param_uint64 ( &td->details.refresh_revealed_coins.denominations_serial), GNUNET_PQ_query_param_uint64 ( diff --git a/src/exchangedb/lrbt_callbacks.c b/src/exchangedb/lrbt_callbacks.c index 04be98696..dd7852131 100644 --- a/src/exchangedb/lrbt_callbacks.c +++ b/src/exchangedb/lrbt_callbacks.c @@ -790,6 +790,9 @@ lrbt_cb_table_refresh_revealed_coins (void *cls, TALER_PQ_result_spec_blinded_denom_sig ( "ev_sig", &td.details.refresh_revealed_coins.ev_sig), + TALER_PQ_result_spec_exchange_withdraw_values ( + "ewv", + &td.details.refresh_revealed_coins.ewv), GNUNET_PQ_result_spec_uint64 ( "denominations_serial", &td.details.refresh_revealed_coins.denominations_serial), diff --git a/src/exchangedb/plugin_exchangedb_postgres.c b/src/exchangedb/plugin_exchangedb_postgres.c index 9694b73ce..7b8763eb6 100644 --- a/src/exchangedb/plugin_exchangedb_postgres.c +++ b/src/exchangedb/plugin_exchangedb_postgres.c @@ -891,13 +891,14 @@ prepare_statements (struct PostgresClosure *pg) ",link_sig " ",denominations_serial " ",coin_ev" + ",ewv" ",h_coin_ev" ",ev_sig" ") SELECT $1, $2, $3, " - " denominations_serial, $5, $6, $7" + " denominations_serial, $5, $6, $7, $8" " FROM denominations" " WHERE denom_pub_hash=$4;", - 7), + 8), /* Obtain information about the coins created in a refresh operation, used in #postgres_get_refresh_reveal() */ GNUNET_PQ_make_prepare ( @@ -908,6 +909,7 @@ prepare_statements (struct PostgresClosure *pg) ",rrc.h_coin_ev" ",rrc.link_sig" ",rrc.coin_ev" + ",rrc.ewv" ",rrc.ev_sig" " FROM refresh_commitments" " JOIN refresh_revealed_coins rrc" @@ -1213,7 +1215,9 @@ prepare_statements (struct PostgresClosure *pg) " tp.transfer_pub" ",denoms.denom_pub" ",rrc.ev_sig" + ",rrc.ewv" ",rrc.link_sig" + ",rrc.freshcoin_index" " FROM refresh_commitments" " JOIN refresh_revealed_coins rrc" " USING (melt_serial_id)" @@ -2241,6 +2245,7 @@ prepare_statements (struct PostgresClosure *pg) ",link_sig" ",coin_ev" ",ev_sig" + ",ewv" ",denominations_serial" ",melt_serial_id" " FROM refresh_revealed_coins" @@ -2532,11 +2537,12 @@ prepare_statements (struct PostgresClosure *pg) ",coin_ev" ",h_coin_ev" ",ev_sig" + ",ewv" ",denominations_serial" ",melt_serial_id" ") VALUES " - "($1, $2, $3, $4, $5, $6, $7, $8);", - 8), + "($1, $2, $3, $4, $5, $6, $7, $8, $9);", + 9), GNUNET_PQ_make_prepare ( "insert_into_table_refresh_transfer_keys", "INSERT INTO refresh_transfer_keys" @@ -6095,6 +6101,8 @@ postgres_insert_refresh_reveal ( GNUNET_PQ_query_param_auto_from_type (&rrc->orig_coin_link_sig), GNUNET_PQ_query_param_auto_from_type (&rrc->h_denom_pub), TALER_PQ_query_param_blinded_planchet (&rrc->blinded_planchet), + // FIXME: needed? review link protocol! + TALER_PQ_query_param_exchange_withdraw_values (&rrc->exchange_vals), GNUNET_PQ_query_param_auto_from_type (&rrc->coin_envelope_hash), TALER_PQ_query_param_blinded_denom_sig (&rrc->coin_sig), GNUNET_PQ_query_param_end @@ -6203,6 +6211,9 @@ add_revealed_coins (void *cls, &rrc->coin_envelope_hash), TALER_PQ_result_spec_blinded_planchet ("coin_ev", &rrc->blinded_planchet), + // FIXME: needed? review link protocol! + TALER_PQ_result_spec_exchange_withdraw_values ("ewv", + &rrc->exchange_vals), TALER_PQ_result_spec_blinded_denom_sig ("ev_sig", &rrc->coin_sig), GNUNET_PQ_result_spec_end @@ -6384,6 +6395,11 @@ add_ldl (void *cls, &pos->orig_coin_link_sig), TALER_PQ_result_spec_blinded_denom_sig ("ev_sig", &pos->ev_sig), + GNUNET_PQ_result_spec_uint32 ("freshcoin_index", + &pos->coin_refresh_offset), + // FIXME: needed? review link protocol! + TALER_PQ_result_spec_exchange_withdraw_values ("ewv", + &pos->alg_values), TALER_PQ_result_spec_denom_pub ("denom_pub", &pos->denom_pub), GNUNET_PQ_result_spec_end diff --git a/src/exchangedb/test_exchangedb.c b/src/exchangedb/test_exchangedb.c index f86f5451c..e290502c6 100644 --- a/src/exchangedb/test_exchangedb.c +++ b/src/exchangedb/test_exchangedb.c @@ -1565,6 +1565,8 @@ run (void *cls) TALER_denom_sig_unblind (&ds, &cbc2.sig, &bks, + &c_hash, + &alg_values, &dkp->pub)); FAILIF (GNUNET_OK != TALER_denom_pub_verify (&dkp->pub, @@ -1582,6 +1584,8 @@ run (void *cls) TALER_denom_sig_unblind (&deposit.coin.denom_sig, &cbc.sig, &bks, + &c_hash, + &alg_values, &dkp->pub)); deadline = GNUNET_TIME_timestamp_get (); { @@ -1760,6 +1764,7 @@ run (void *cls) rp->blinded_msg_size); TALER_denom_pub_hash (&new_dkp[cnt]->pub, &ccoin->h_denom_pub); + ccoin->exchange_vals = alg_values; TALER_coin_ev_hash (bp, &ccoin->h_denom_pub, &ccoin->coin_envelope_hash); @@ -2167,6 +2172,8 @@ run (void *cls) TALER_denom_sig_unblind (&deposit.coin.denom_sig, &cbc.sig, &bks, + &c_hash, + &alg_values, &dkp->pub)); RND_BLK (&deposit.csig); RND_BLK (&deposit.merchant_pub); |