gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-exchange] branch master updated: -start with DB cleanup


From: gnunet
Subject: [taler-exchange] branch master updated: -start with DB cleanup
Date: Sun, 14 Aug 2022 18:59:52 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository exchange.

The following commit(s) were added to refs/heads/master by this push:
     new 3e6e8733 -start with DB cleanup
3e6e8733 is described below

commit 3e6e873367c0c6b257201867e62ff552b6a0f444
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Sun Aug 14 18:59:48 2022 +0200

    -start with DB cleanup
---
 src/exchangedb/common-0001.sql              |   6 -
 src/exchangedb/exchange-0001-part.sql       |  10 --
 src/exchangedb/irbt_callbacks.c             |   6 -
 src/exchangedb/lrbt_callbacks.c             |   7 -
 src/exchangedb/plugin_exchangedb_postgres.c | 222 ++++++----------------------
 src/exchangedb/test_exchangedb.c            |   8 +-
 src/include/taler_exchangedb_plugin.h       |  16 --
 7 files changed, 50 insertions(+), 225 deletions(-)

diff --git a/src/exchangedb/common-0001.sql b/src/exchangedb/common-0001.sql
index 7829b0b3..58c15d0b 100644
--- a/src/exchangedb/common-0001.sql
+++ b/src/exchangedb/common-0001.sql
@@ -56,8 +56,6 @@ BEGIN
       '(wire_target_serial_id BIGINT GENERATED BY DEFAULT AS IDENTITY' -- 
UNIQUE'
       ',wire_target_h_payto BYTEA PRIMARY KEY CHECK 
(LENGTH(wire_target_h_payto)=32)'
       ',payto_uri VARCHAR NOT NULL'
-      ',kyc_ok BOOLEAN NOT NULL DEFAULT (FALSE)' -- FIXME: REMOVE!
-      ',external_id VARCHAR' -- FIXME: REMOVE!
     ') %s ;'
     ,'wire_targets'
     ,'PARTITION BY HASH (wire_target_h_payto)'
@@ -165,10 +163,6 @@ BEGIN
       ',current_balance_frac INT4 NOT NULL DEFAULT(0)'
       ',purses_active INT8 NOT NULL DEFAULT(0)'
       ',purses_allowed INT8 NOT NULL DEFAULT(0)'
-      -- FIXME: remove:
-      ',kyc_required BOOLEAN NOT NULL DEFAULT(FALSE)'
-      -- FIXME: remove:
-      ',kyc_passed BOOLEAN NOT NULL DEFAULT(FALSE)'
       ',max_age INT4 NOT NULL DEFAULT(120)'
       ',expiration_date INT8 NOT NULL'
       ',gc_date INT8 NOT NULL'
diff --git a/src/exchangedb/exchange-0001-part.sql 
b/src/exchangedb/exchange-0001-part.sql
index 792af685..dee63a7e 100644
--- a/src/exchangedb/exchange-0001-part.sql
+++ b/src/exchangedb/exchange-0001-part.sql
@@ -120,12 +120,6 @@ COMMENT ON COLUMN wire_targets.payto_uri
   IS 'Can be a regular bank account, or also be a URI identifying a 
reserve-account (for P2P payments)';
 COMMENT ON COLUMN wire_targets.wire_target_h_payto
   IS 'Unsalted hash of payto_uri';
--- FIXME: remove:
-COMMENT ON COLUMN wire_targets.kyc_ok
-  IS 'true if the KYC check was passed successfully';
--- FIXME: remove:
-COMMENT ON COLUMN wire_targets.external_id
-  IS 'Name of the user that was used for OAuth 2.0-based legitimization';
 
 CREATE TABLE IF NOT EXISTS wire_targets_default
   PARTITION OF wire_targets
@@ -175,10 +169,6 @@ COMMENT ON COLUMN reserves.purses_active
   IS 'Number of purses that were created by this reserve that are not expired 
and not fully paid.';
 COMMENT ON COLUMN reserves.purses_allowed
   IS 'Number of purses that this reserve is allowed to have active at most.';
-COMMENT ON COLUMN reserves.kyc_required
-  IS 'True if a KYC check must have been passed before withdrawing from this 
reserve. Set to true once a reserve received a P2P payment.';
-COMMENT ON COLUMN reserves.kyc_passed
-  IS 'True once KYC was passed for this reserve. The KYC details are then 
available via the wire_targets table under the key of wire_target_h_payto which 
is to be derived from the reserve_pub and the base URL of this exchange.';
 COMMENT ON COLUMN reserves.expiration_date
   IS 'Used to trigger closing of reserves that have not been drained after 
some time';
 COMMENT ON COLUMN reserves.gc_date
diff --git a/src/exchangedb/irbt_callbacks.c b/src/exchangedb/irbt_callbacks.c
index bff71cf4..e725ad2c 100644
--- a/src/exchangedb/irbt_callbacks.c
+++ b/src/exchangedb/irbt_callbacks.c
@@ -119,12 +119,6 @@ irbt_cb_table_wire_targets (struct PostgresClosure *pg,
     GNUNET_PQ_query_param_auto_from_type (&payto_hash),
     GNUNET_PQ_query_param_string (
       td->details.wire_targets.payto_uri),
-    GNUNET_PQ_query_param_auto_from_type (
-      &td->details.wire_targets.kyc_ok),
-    NULL == td->details.wire_targets.external_id
-    ? GNUNET_PQ_query_param_null ()
-    : GNUNET_PQ_query_param_string (
-      td->details.wire_targets.external_id),
     GNUNET_PQ_query_param_end
   };
 
diff --git a/src/exchangedb/lrbt_callbacks.c b/src/exchangedb/lrbt_callbacks.c
index e31b3637..a8f68f4c 100644
--- a/src/exchangedb/lrbt_callbacks.c
+++ b/src/exchangedb/lrbt_callbacks.c
@@ -175,18 +175,11 @@ lrbt_cb_table_wire_targets (void *cls,
 
   for (unsigned int i = 0; i<num_results; i++)
   {
-    bool no_xid;
     struct GNUNET_PQ_ResultSpec rs[] = {
       GNUNET_PQ_result_spec_uint64 ("serial",
                                     &td.serial),
       GNUNET_PQ_result_spec_string ("payto_uri",
                                     &td.details.wire_targets.payto_uri),
-      GNUNET_PQ_result_spec_auto_from_type ("kyc_ok",
-                                            &td.details.wire_targets.kyc_ok),
-      GNUNET_PQ_result_spec_allow_null (
-        GNUNET_PQ_result_spec_string ("external_id",
-                                      &td.details.wire_targets.external_id),
-        &no_xid),
       GNUNET_PQ_result_spec_end
     };
 
diff --git a/src/exchangedb/plugin_exchangedb_postgres.c 
b/src/exchangedb/plugin_exchangedb_postgres.c
index 4d0d2ae0..25d30d00 100644
--- a/src/exchangedb/plugin_exchangedb_postgres.c
+++ b/src/exchangedb/plugin_exchangedb_postgres.c
@@ -580,14 +580,6 @@ prepare_statements (struct PostgresClosure *pg)
       " FROM reserves_in"
       " WHERE reserve_pub=$1",
       1),
-    /* Used in #postgres_set_kyc_ok() */
-    GNUNET_PQ_make_prepare (
-      "set_kyc_ok",
-      "UPDATE wire_targets"
-      " SET kyc_ok=TRUE"
-      ",external_id=$2"
-      " WHERE wire_target_h_payto=$1",
-      2),
     GNUNET_PQ_make_prepare (
       "get_kyc_h_payto",
       "SELECT"
@@ -611,7 +603,7 @@ prepare_statements (struct PostgresClosure *pg)
       "  ) VALUES "
       "  ($1, $2, $3, $4, $5, $6, $7, $8);",
       8),
-    /* Used in #postgres_inselect_wallet_kyc_status() */
+    /* Used in #setup_wire_target() */
     GNUNET_PQ_make_prepare (
       "insert_kyc_status",
       "INSERT INTO wire_targets"
@@ -619,16 +611,8 @@ prepare_statements (struct PostgresClosure *pg)
       "  ,payto_uri"
       "  ) VALUES "
       "  ($1, $2)"
-      " RETURNING wire_target_serial_id",
+      " ON CONFLICT DO NOTHING",
       2),
-    GNUNET_PQ_make_prepare (
-      "select_kyc_status_by_payto",
-      "SELECT "
-      " kyc_ok"
-      ",wire_target_serial_id"
-      " FROM wire_targets"
-      " WHERE wire_target_h_payto=$1;",
-      1),
     /* Used in #postgres_drain_kyc_alert() */
     GNUNET_PQ_make_prepare (
       "drain_kyc_alert",
@@ -3254,8 +3238,6 @@ prepare_statements (struct PostgresClosure *pg)
       "SELECT"
       " wire_target_serial_id AS serial"
       ",payto_uri"
-      ",kyc_ok"
-      ",external_id"
       " FROM wire_targets"
       " WHERE wire_target_serial_id > $1"
       " ORDER BY wire_target_serial_id ASC;",
@@ -3773,11 +3755,9 @@ prepare_statements (struct PostgresClosure *pg)
       "(wire_target_serial_id"
       ",wire_target_h_payto"
       ",payto_uri"
-      ",kyc_ok"
-      ",external_id"
       ") VALUES "
-      "($1, $2, $3, $4, $5);",
-      5),
+      "($1, $2, $3);",
+      3),
     GNUNET_PQ_make_prepare (
       "insert_into_table_reserves",
       "INSERT INTO reserves"
@@ -5762,59 +5742,6 @@ postgres_reserves_get_origin (
 }
 
 
-/**
- * Set the KYC status to "OK" for a bank account.
- *
- * @param cls the @e cls of this struct with the plugin-specific state
- * @param h_payto which account has been checked
- * @param id external ID to persist
- * @return transaction status
- */
-static enum GNUNET_DB_QueryStatus
-postgres_set_kyc_ok (void *cls,
-                     const struct TALER_PaytoHashP *h_payto,
-                     const char *id)
-{
-  struct PostgresClosure *pg = cls;
-  struct GNUNET_PQ_QueryParam params[] = {
-    GNUNET_PQ_query_param_auto_from_type (h_payto),
-    GNUNET_PQ_query_param_end
-  };
-  struct GNUNET_PQ_QueryParam params2[] = {
-    GNUNET_PQ_query_param_auto_from_type (h_payto),
-    GNUNET_PQ_query_param_string (id),
-    GNUNET_PQ_query_param_end
-  };
-  struct TALER_KycCompletedEventP rep = {
-    .header.size = htons (sizeof (rep)),
-    .header.type = htons (TALER_DBEVENT_EXCHANGE_KYC_COMPLETED)
-  };
-  struct GNUNET_PQ_ResultSpec rs[] = {
-    GNUNET_PQ_result_spec_auto_from_type ("wire_target_h_payto",
-                                          &rep.h_payto),
-    GNUNET_PQ_result_spec_end
-  };
-  enum GNUNET_DB_QueryStatus qs;
-
-  qs = GNUNET_PQ_eval_prepared_non_select (pg->conn,
-                                           "set_kyc_ok",
-                                           params2);
-  if (qs <= 0)
-    return qs;
-  qs = GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
-                                                 "get_kyc_h_payto",
-                                                 params,
-                                                 rs);
-  if (qs <= 0)
-    return qs;
-  postgres_event_notify (pg,
-                         &rep.header,
-                         NULL,
-                         0);
-  return qs;
-}
-
-
 /**
  * Extract next KYC alert.  Deletes the alert.
  *
@@ -5846,73 +5773,6 @@ postgres_drain_kyc_alert (void *cls,
 }
 
 
-/**
- * Compute the hash of the @a payto_uri and use it to get the KYC status for a
- * wallet. If the status is unknown, inserts a new status record (hence
- * INsertSELECT).
- *
- * @param pg the plugin-specific state
- * @param payto_uri the payto URI to check
- * @param[out] h_payto set to the hash of @a payto_uri
- * @param[out] kyc set to the KYC status of the wallet
- * @return transaction status
- */
-static enum GNUNET_DB_QueryStatus
-inselect_account_kyc_status (
-  struct PostgresClosure *pg,
-  const char *payto_uri,
-  struct TALER_PaytoHashP *h_payto,
-  struct TALER_EXCHANGEDB_KycStatus *kyc)
-{
-  enum GNUNET_DB_QueryStatus qs;
-
-  TALER_payto_hash (payto_uri,
-                    h_payto);
-  {
-    struct GNUNET_PQ_QueryParam params[] = {
-      GNUNET_PQ_query_param_auto_from_type (h_payto),
-      GNUNET_PQ_query_param_end
-    };
-    struct GNUNET_PQ_ResultSpec rs[] = {
-      GNUNET_PQ_result_spec_uint64 ("wire_target_serial_id",
-                                    &kyc->payment_target_uuid),
-      GNUNET_PQ_result_spec_bool ("kyc_ok",
-                                  &kyc->ok),
-      GNUNET_PQ_result_spec_end
-    };
-
-    qs = GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
-                                                   
"select_kyc_status_by_payto",
-                                                   params,
-                                                   rs);
-    if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
-    {
-      struct GNUNET_PQ_QueryParam iparams[] = {
-        GNUNET_PQ_query_param_auto_from_type (h_payto),
-        GNUNET_PQ_query_param_string (payto_uri),
-        GNUNET_PQ_query_param_end
-      };
-      struct GNUNET_PQ_ResultSpec irs[] = {
-        GNUNET_PQ_result_spec_uint64 ("wire_target_serial_id",
-                                      &kyc->payment_target_uuid),
-        GNUNET_PQ_result_spec_end
-      };
-
-      qs = GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
-                                                     "insert_kyc_status",
-                                                     iparams,
-                                                     irs);
-      if (qs < 0)
-        return qs;
-      if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
-        return GNUNET_DB_STATUS_SOFT_ERROR;
-      kyc->ok = false;
-    }
-  }
-  return qs;
-}
-
-
 /**
  * Updates a reserve with the data from the given reserve structure.
  *
@@ -5940,6 +5800,34 @@ reserves_update (void *cls,
 }
 
 
+/**
+ * Setup new wire target for @a payto_uri.
+ *
+ * @param pg the plugin-specific state
+ * @param payto_uri the payto URI to check
+ * @param[out] h_payto set to the hash of @a payto_uri
+ * @return transaction status
+ */
+static enum GNUNET_DB_QueryStatus
+setup_wire_target (
+  struct PostgresClosure *pg,
+  const char *payto_uri,
+  struct TALER_PaytoHashP *h_payto)
+{
+  struct GNUNET_PQ_QueryParam iparams[] = {
+    GNUNET_PQ_query_param_auto_from_type (h_payto),
+    GNUNET_PQ_query_param_string (payto_uri),
+    GNUNET_PQ_query_param_end
+  };
+
+  TALER_payto_hash (payto_uri,
+                    h_payto);
+  return GNUNET_PQ_eval_prepared_non_select (pg->conn,
+                                             "insert_kyc_status",
+                                             iparams);
+}
+
+
 /**
  * Generate event notification for the reserve
  * change.
@@ -6043,23 +5931,14 @@ postgres_reserves_in_insert (void *cls,
      is again used to guard against duplicates. */
   {
     enum GNUNET_DB_QueryStatus qs2;
-    struct TALER_EXCHANGEDB_KycStatus kyc;
     enum GNUNET_DB_QueryStatus qs3;
     struct TALER_PaytoHashP h_payto;
 
-    memset (&kyc,
-            0,
-            sizeof (kyc));
-    qs3 = inselect_account_kyc_status (pg,
-                                       sender_account_details,
-                                       &h_payto,
-                                       &kyc);
-    if (qs3 <= 0)
-    {
-      GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs3);
+    qs3 = setup_wire_target (pg,
+                             sender_account_details,
+                             &h_payto);
+    if (qs3 < 0)
       return qs3;
-    }
-    GNUNET_assert (0 != kyc.payment_target_uuid);
     /* We do not have the UUID, so insert by public key */
     struct GNUNET_PQ_QueryParam params[] = {
       GNUNET_PQ_query_param_auto_from_type (&reserve.pub),
@@ -8215,19 +8094,14 @@ postgres_insert_deposit (void *cls,
                          const struct TALER_EXCHANGEDB_Deposit *deposit)
 {
   struct PostgresClosure *pg = cls;
-  struct TALER_EXCHANGEDB_KycStatus kyc;
-  enum GNUNET_DB_QueryStatus qs;
   struct TALER_PaytoHashP h_payto;
+  enum GNUNET_DB_QueryStatus qs;
 
-  qs = inselect_account_kyc_status (pg,
-                                    deposit->receiver_wire_account,
-                                    &h_payto,
-                                    &kyc);
-  if (qs <= 0)
-  {
-    GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
+  qs = setup_wire_target (pg,
+                          deposit->receiver_wire_account,
+                          &h_payto);
+  if (qs < 0)
     return qs;
-  }
   if (GNUNET_TIME_timestamp_cmp (deposit->wire_deadline,
                                  <,
                                  deposit->refund_deadline))
@@ -10447,20 +10321,11 @@ postgres_insert_reserve_closed (
 {
   struct PostgresClosure *pg = cls;
   struct TALER_EXCHANGEDB_Reserve reserve;
-  struct TALER_EXCHANGEDB_KycStatus kyc;
   enum GNUNET_DB_QueryStatus qs;
   struct TALER_PaytoHashP h_payto;
 
-  qs = inselect_account_kyc_status (pg,
-                                    receiver_account,
-                                    &h_payto,
-                                    &kyc);
-  if (qs <= 0)
-  {
-    GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs);
-    GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
-    return qs;
-  }
+  TALER_payto_hash (receiver_account,
+                    &h_payto);
   {
     struct GNUNET_PQ_QueryParam params[] = {
       GNUNET_PQ_query_param_auto_from_type (reserve_pub),
@@ -17348,7 +17213,6 @@ libtaler_plugin_exchangedb_postgres_init (void *cls)
     &postgres_iterate_auditor_denominations;
   plugin->reserves_get = &postgres_reserves_get;
   plugin->reserves_get_origin = &postgres_reserves_get_origin;
-  plugin->set_kyc_ok = &postgres_set_kyc_ok;
   plugin->drain_kyc_alert = &postgres_drain_kyc_alert;
   plugin->reserves_in_insert = &postgres_reserves_in_insert;
   plugin->get_withdraw_info = &postgres_get_withdraw_info;
diff --git a/src/exchangedb/test_exchangedb.c b/src/exchangedb/test_exchangedb.c
index 1676d572..bf9bd1d2 100644
--- a/src/exchangedb/test_exchangedb.c
+++ b/src/exchangedb/test_exchangedb.c
@@ -318,7 +318,6 @@ create_denom_key_pair (unsigned int size,
     return NULL;
   }
   memset (&issue2, 0, sizeof (issue2));
-  plugin->commit (plugin->cls);
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
       plugin->get_denomination_info (plugin->cls,
                                      &dki.issue.denom_hash,
@@ -1302,6 +1301,7 @@ run (void *cls)
                                       sndr,
                                       "exchange-account-1",
                                       4));
+
   FAILIF (GNUNET_OK !=
           check_reserve (&reserve_pub,
                          value.value,
@@ -1406,6 +1406,8 @@ run (void *cls)
     GNUNET_assert (nonce_ok);
     GNUNET_assert (balance_ok);
   }
+
+
   FAILIF (GNUNET_OK !=
           check_reserve (&reserve_pub,
                          0,
@@ -1909,6 +1911,7 @@ run (void *cls)
       }
     }
   }
+  GNUNET_assert (4 == cnt);
   FAILIF (4 != cnt);
 
   auditor_row_cnt = 0;
@@ -2290,6 +2293,9 @@ run (void *cls)
 
 
   /* test revocation */
+  FAILIF (GNUNET_OK !=
+          plugin->start (plugin->cls,
+                         "test-3b"));
   RND_BLK (&master_sig);
   FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
           plugin->insert_denomination_revocation (plugin->cls,
diff --git a/src/include/taler_exchangedb_plugin.h 
b/src/include/taler_exchangedb_plugin.h
index f3c51f4d..cb3f7e5c 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -279,8 +279,6 @@ struct TALER_EXCHANGEDB_TableData
     struct
     {
       char *payto_uri;
-      bool kyc_ok;
-      char *external_id;
     } wire_targets;
 
     struct
@@ -3082,20 +3080,6 @@ struct TALER_EXCHANGEDB_Plugin
     struct TALER_PaytoHashP *h_payto);
 
 
-  /**
-   * Set the KYC status to "OK" for a bank account.
-   *
-   * @param cls the @e cls of this struct with the plugin-specific state
-   * @param h_payto which account has been checked
-   * @param id ID data to persist
-   * @return transaction status
-   */
-  enum GNUNET_DB_QueryStatus
-  (*set_kyc_ok)(void *cls,
-                const struct TALER_PaytoHashP *h_payto,
-                const char *id);
-
-
   /**
    * Extract next KYC alert.  Deletes the alert.
    *

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]