-misc. minor fixes

This commit is contained in:
Christian Grothoff 2022-04-26 17:46:36 +02:00
parent 25aa208d12
commit 336f2d8991
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
7 changed files with 34 additions and 5 deletions

View File

@ -14,7 +14,7 @@
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/ */
/** /**
* @file taler-exchange-httpd_purses_create.c * @file taler-exchange-httpd_purses_deposit.c
* @brief Handle /purses/$PID/deposit requests; parses the POST and JSON and * @brief Handle /purses/$PID/deposit requests; parses the POST and JSON and
* verifies the coin signature before handing things off * verifies the coin signature before handing things off
* to the database. * to the database.

View File

@ -2734,6 +2734,14 @@ DECLARE
my_kyc_passed BOOLEAN; my_kyc_passed BOOLEAN;
BEGIN BEGIN
-- comment out for now
IF TRUE
THEN
out_no_funds=FALSE;
out_conflict=FALSE;
RETURN;
END IF;
-- Store purse merge signature, checks for purse_pub uniqueness -- Store purse merge signature, checks for purse_pub uniqueness
INSERT INTO purse_merges INSERT INTO purse_merges
(partner_serial_id (partner_serial_id

View File

@ -3483,8 +3483,8 @@ prepare_statements (struct PostgresClosure *pg)
",balance_frac" ",balance_frac"
",merge_timestamp" ",merge_timestamp"
" FROM purse_requests" " FROM purse_requests"
" WHERE purse_pub=$1" " LEFT JOIN purse_merges USING (purse_pub)"
" LEFT JOIN purse_merges ON (purse_pub);", " WHERE purse_pub=$1;",
1), 1),
/* Used in #postgres_select_purse_request */ /* Used in #postgres_select_purse_request */
GNUNET_PQ_make_prepare ( GNUNET_PQ_make_prepare (

View File

@ -2470,6 +2470,7 @@ TALER_TESTING_cmd_purse_get (
* @param expected_http_status what HTTP status do we expect to get returned from the exchange * @param expected_http_status what HTTP status do we expect to get returned from the exchange
* @param contract_terms contract, JSON string * @param contract_terms contract, JSON string
* @param upload_contract should we upload the contract * @param upload_contract should we upload the contract
* @param expiration when should the purse expire
* @param reserve_ref reference to reserve key, or NULL to create a new reserve * @param reserve_ref reference to reserve key, or NULL to create a new reserve
* @return the command * @return the command
*/ */
@ -2479,6 +2480,7 @@ TALER_TESTING_cmd_purse_create_with_reserve (
unsigned int expected_http_status, unsigned int expected_http_status,
const char *contract_terms, const char *contract_terms,
bool upload_contract, bool upload_contract,
struct GNUNET_TIME_Relative expiration,
const char *reserve_ref); const char *reserve_ref);

View File

@ -268,7 +268,6 @@ TALER_EXCHANGE_purse_create_with_merge (
struct TALER_PurseContractSignatureP purse_sig; struct TALER_PurseContractSignatureP purse_sig;
void *econtract = NULL; void *econtract = NULL;
size_t econtract_size = 0; size_t econtract_size = 0;
struct TALER_Amount purse_value_after_fees;
pcm = GNUNET_new (struct TALER_EXCHANGE_PurseCreateMergeHandle); pcm = GNUNET_new (struct TALER_EXCHANGE_PurseCreateMergeHandle);
pcm->exchange = exchange; pcm->exchange = exchange;
@ -380,7 +379,7 @@ TALER_EXCHANGE_purse_create_with_merge (
} }
create_with_merge_obj = GNUNET_JSON_PACK ( create_with_merge_obj = GNUNET_JSON_PACK (
TALER_JSON_pack_amount ("purse_value", TALER_JSON_pack_amount ("purse_value",
&purse_value_after_fees), &pcm->purse_value_after_fees),
GNUNET_JSON_pack_uint64 ("min_age", GNUNET_JSON_pack_uint64 ("min_age",
min_age), min_age),
GNUNET_JSON_pack_allow_null ( GNUNET_JSON_pack_allow_null (

View File

@ -176,6 +176,7 @@ run (void *cls,
MHD_HTTP_OK, MHD_HTTP_OK,
"{\"amount\":\"EUR:1\",\"summary\":\"ice cream\"}", "{\"amount\":\"EUR:1\",\"summary\":\"ice cream\"}",
true /* upload contract */, true /* upload contract */,
GNUNET_TIME_UNIT_MINUTES, /* expiration */
"create-reserve-1"), "create-reserve-1"),
TALER_TESTING_cmd_contract_get ( TALER_TESTING_cmd_contract_get (
"pull-get-contract", "pull-get-contract",

View File

@ -71,6 +71,16 @@ struct ReservePurseState
*/ */
struct TALER_EXCHANGE_PurseCreateMergeHandle *dh; struct TALER_EXCHANGE_PurseCreateMergeHandle *dh;
/**
* When will the purse expire?
*/
struct GNUNET_TIME_Relative expiration_rel;
/**
* When will the purse expire?
*/
struct GNUNET_TIME_Timestamp purse_expiration;
/** /**
* Contract terms for the purse. * Contract terms for the purse.
*/ */
@ -161,6 +171,13 @@ purse_run (void *cls,
&ds->purse_pub.eddsa_pub); &ds->purse_pub.eddsa_pub);
GNUNET_CRYPTO_eddsa_key_create (&ds->merge_priv.eddsa_priv); GNUNET_CRYPTO_eddsa_key_create (&ds->merge_priv.eddsa_priv);
GNUNET_CRYPTO_ecdhe_key_create (&ds->contract_priv.ecdhe_priv); GNUNET_CRYPTO_ecdhe_key_create (&ds->contract_priv.ecdhe_priv);
ds->purse_expiration = GNUNET_TIME_absolute_to_timestamp (
GNUNET_TIME_relative_to_absolute (ds->expiration_rel));
GNUNET_assert (0 ==
json_object_set_new (
ds->contract_terms,
"pay_deadline",
GNUNET_JSON_from_timestamp (ds->purse_expiration)));
ds->merge_timestamp = GNUNET_TIME_timestamp_get (); ds->merge_timestamp = GNUNET_TIME_timestamp_get ();
ds->dh = TALER_EXCHANGE_purse_create_with_merge ( ds->dh = TALER_EXCHANGE_purse_create_with_merge (
is->exchange, is->exchange,
@ -252,12 +269,14 @@ TALER_TESTING_cmd_purse_create_with_reserve (
unsigned int expected_http_status, unsigned int expected_http_status,
const char *contract_terms, const char *contract_terms,
bool upload_contract, bool upload_contract,
struct GNUNET_TIME_Relative expiration,
const char *reserve_ref) const char *reserve_ref)
{ {
struct ReservePurseState *ds; struct ReservePurseState *ds;
json_error_t err; json_error_t err;
ds = GNUNET_new (struct ReservePurseState); ds = GNUNET_new (struct ReservePurseState);
ds->expiration_rel = expiration;
ds->contract_terms = json_loads (contract_terms, ds->contract_terms = json_loads (contract_terms,
0 /* flags */, 0 /* flags */,
&err); &err);