aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÖzgür Kesim <oec-taler@kesim.org>2023-05-14 13:11:36 +0200
committerÖzgür Kesim <oec-taler@kesim.org>2023-05-14 13:11:36 +0200
commit4a31a180a4595aa040060e91ccde4f839aa02f72 (patch)
treeacc4f71d27832fc4e20a0cd9c8d913483dd86ab2
parent9f1f069cea3775be68bbdbbd5e44fd4c86eb9bf6 (diff)
downloadexchange-4a31a180a4595aa040060e91ccde4f839aa02f72.tar.xz
[æge-withdraw] WiP: towards new API
-rw-r--r--src/exchange/taler-exchange-httpd_age-withdraw.c15
-rw-r--r--src/exchangedb/0003-age_withdraw_commitments.sql15
2 files changed, 17 insertions, 13 deletions
diff --git a/src/exchange/taler-exchange-httpd_age-withdraw.c b/src/exchange/taler-exchange-httpd_age-withdraw.c
index 0978421a4..d9475e8f6 100644
--- a/src/exchange/taler-exchange-httpd_age-withdraw.c
+++ b/src/exchange/taler-exchange-httpd_age-withdraw.c
@@ -92,9 +92,20 @@ struct AgeWithdrawContext
struct TALER_EXCHANGEDB_AgeWithdrawCommitment commitment;
/**
- * Current time for the DB transaction.
+ * Number of coins/denonations in the reveal
*/
- struct GNUNET_TIME_Timestamp now;
+ uint32_t num_coins;
+
+ /**
+ * kappa * #num_coins hashes of blinded coin planchets.
+ */
+ struct TALER_BlindedPlanchet *coin_evs;
+
+ /**
+ * #num_coins hashes of the denominations from which the coins are withdrawn.
+ * Those must support age restriction.
+ */
+ struct TALER_DenominationHashP *denoms_h;
};
diff --git a/src/exchangedb/0003-age_withdraw_commitments.sql b/src/exchangedb/0003-age_withdraw_commitments.sql
index 2ee462ecc..3106a07ac 100644
--- a/src/exchangedb/0003-age_withdraw_commitments.sql
+++ b/src/exchangedb/0003-age_withdraw_commitments.sql
@@ -30,10 +30,9 @@ BEGIN
',max_age SMALLINT NOT NULL CONSTRAINT max_age_positive CHECK(max_age>=0)'
',reserve_pub BYTEA NOT NULL CONSTRAINT reserve_pub_length CHECK(LENGTH(reserve_pub)=32)'
',reserve_sig BYTEA NOT NULL CONSTRAINT reserve_sig_length CHECK(LENGTH(reserve_sig)=64)'
- ',num_coins SMALLINT NOT NULL CONSTRAINT num_coins_positive CHECK(num_coins>0)'
- ',denominations_serials INT8[] NOT NULL CONSTRAINT denominations_serial_array_length CHECK(cardinality(denominations_serials)=num_coins)'
- ',denom_sigs BYTEA[] NOT NULL CONSTRAINT denom_sigs_array_length CHECK(cardinality(denom_sigs)=num_coins)'
',noreveal_index SMALLINT NOT NULL CONSTRAINT noreveal_index_positive CHECK(noreveal_index>=0)'
+ ',denominations_serials INT8[] NOT NULL CONSTRAINT denominations_serial_array_length CHECK(cardinality(denominations_serials)=cardinality(denom_sigs))'
+ ',denom_sigs BYTEA[] NOT NULL CONSTRAINT denom_sigs_array_length CHECK(cardinality(denom_sigs)=cardinality(denominations_serials))'
') %s ;'
,table_name
,'PARTITION BY HASH (reserve_pub)'
@@ -75,20 +74,14 @@ BEGIN
,table_name
,partition_suffix
);
- PERFORM comment_partinioned_column(
- 'Number of coins to be withdrawn'
- ,'num_coins'
- ,table_name
- ,partition_suffix
- );
PERFORM comment_partitioned_column(
- 'Array of #num_coins of references to the denominations'
+ 'Array of references to the denominations'
,'denominations_serials'
,table_name
,partition_suffix
);
PERFORM comment_partitioned_column(
- 'Array of #num_coins signatures over the blinded envelopes'
+ 'Array of signatures over the blinded envelopes'
,'denom_sigs'
,table_name
,partition_suffix