commit 325eef98ef9f0bbfa99e1abb3c2e4f7fb79578e0
parent b0840af24bbfa82b4d83441cff9d99852cdbce40
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 19 Apr 2026 11:54:06 +0200
fix up insert_successor_measure logic
Diffstat:
4 files changed, 23 insertions(+), 62 deletions(-)
diff --git a/src/exchangedb/insert_successor_measure.c b/src/exchangedb/insert_successor_measure.c
@@ -55,6 +55,7 @@ TALER_EXCHANGEDB_insert_successor_measure (
NULL != jmeasures
? TALER_PQ_query_param_json (jmeasures)
: GNUNET_PQ_query_param_null (),
+ GNUNET_PQ_query_param_string (notify_s),
GNUNET_PQ_query_param_end
};
struct GNUNET_PQ_ResultSpec rs[] = {
@@ -73,11 +74,12 @@ TALER_EXCHANGEDB_insert_successor_measure (
",out_last_date"
",out_legitimization_measure_serial_id"
" FROM exchange_do_insert_successor_measure"
- "($1, $2, $3, $4, $5::TEXT::JSONB);");
- qs = GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
- "do_insert_successor_measure",
- params,
- rs);
+ "($1, $2, $3, $4, $5::TEXT::JSONB, $6);");
+ qs = GNUNET_PQ_eval_prepared_singleton_select (
+ pg->conn,
+ "do_insert_successor_measure",
+ params,
+ rs);
GNUNET_free (notify_s);
GNUNET_PQ_event_do_poll (pg->conn);
return qs;
diff --git a/src/exchangedb/insert_successor_measure.sql b/src/exchangedb/insert_successor_measure.sql
@@ -21,6 +21,7 @@ CREATE FUNCTION exchange_do_insert_successor_measure(
IN in_expiration_time INT8,
IN in_new_measure_name TEXT, -- can be NULL
IN in_jmeasures JSONB, -- can be NULL
+ IN in_notify_s TEXT,
OUT out_last_date INT8,
OUT out_account_unknown BOOLEAN,
OUT out_legitimization_measure_serial_id INT8
@@ -66,35 +67,9 @@ SELECT access_token
IF NOT FOUND
THEN
- IF in_payto_uri IS NULL
- THEN
- -- AML decision on an unknown account without payto_uri => fail.
- out_account_unknown=TRUE;
- RETURN;
- END IF;
-
- my_is_wallet
- = (LOWER (SUBSTRING (in_payto_uri, 0, 23)) =
- 'payto://taler-reserve/') OR
- (LOWER (SUBSTRING (in_payto_uri, 0, 28)) =
- 'payto://taler-reserve-http/');
- INSERT INTO kyc_targets
- (h_normalized_payto
- ,is_wallet)
- VALUES
- (in_h_normalized_payto
- ,my_is_wallet)
- RETURNING access_token
- INTO my_access_token;
- INSERT INTO wire_targets
- (wire_target_h_payto
- ,h_normalized_payto
- ,payto_uri)
- VALUES
- (in_h_full_payto
- ,in_h_normalized_payto
- ,in_payto_uri)
- ON CONFLICT DO NOTHING;
+ -- AML decision on an unknown account => fail.
+ out_account_unknown=TRUE;
+ RETURN;
END IF;
@@ -163,6 +138,10 @@ INSERT INTO legitimization_outcomes
INTO
my_outcome_serial_id;
+EXECUTE FORMAT (
+ 'NOTIFY %s'
+ ,in_notify_s);
+
END $$;
diff --git a/src/exchangedb/update_rules.c b/src/exchangedb/update_rules.c
@@ -486,22 +486,6 @@ run_measure (struct TALER_EXCHANGEDB_RuleUpdater *ru,
break;
}
- // FIXME: combine with above transaction...
- {
- struct TALER_EXCHANGEDB_KycCompletedEventP eh = {
- .header.size = htons (sizeof (eh)),
- .header.type = htons (TALER_DBEVENT_EXCHANGE_KYC_COMPLETED),
- .h_payto = ru->account
- };
-
- GNUNET_log (GNUNET_ERROR_TYPE_INFO,
- "Triggering KYC COMPLETED event\n");
- TALER_EXCHANGEDB_event_notify (ru->pg,
- &eh.header,
- NULL,
- 0);
- }
-
if (unknown_account)
{
fail_update (ru,
diff --git a/src/include/exchange-database/insert_successor_measure.h b/src/include/exchange-database/insert_successor_measure.h
@@ -26,18 +26,14 @@
enum GNUNET_DB_QueryStatus
-TALER_EXCHANGEDB_insert_successor_measure (struct
- TALER_EXCHANGEDB_PostgresContext *pg,
- const struct
- TALER_NormalizedPaytoHashP *
- h_payto,
- struct GNUNET_TIME_Timestamp
- decision_time,
- const char *new_measure_name,
- const json_t *jmeasures,
- bool *unknown_account,
- struct GNUNET_TIME_Timestamp *
- last_date);
+TALER_EXCHANGEDB_insert_successor_measure (
+ struct TALER_EXCHANGEDB_PostgresContext *pg,
+ const struct TALER_NormalizedPaytoHashP *h_payto,
+ struct GNUNET_TIME_Timestamp decision_time,
+ const char *new_measure_name,
+ const json_t *jmeasures,
+ bool *unknown_account,
+ struct GNUNET_TIME_Timestamp *last_date);
#endif