gnunet-svn
[Top][All Lists]
Advanced

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

[taler-exchange] 54/130: misc fixes


From: gnunet
Subject: [taler-exchange] 54/130: misc fixes
Date: Wed, 17 Nov 2021 12:25:02 +0100

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

grothoff pushed a commit to branch master
in repository exchange.

commit 43ee9da01dce57260f3c3c706655f2b830474be2
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Sun Oct 31 12:49:51 2021 +0100

    misc fixes
---
 src/auditor/taler-helper-auditor-wire.c     | 10 +++---
 src/exchangedb/drop0001.sql                 |  6 ++--
 src/exchangedb/exchange-0001.sql            |  4 +--
 src/exchangedb/plugin_exchangedb_postgres.c | 48 ++++++++++++++++++-----------
 src/exchangedb/test_exchangedb.c            |  6 ++--
 src/include/taler_exchangedb_plugin.h       |  5 ++-
 6 files changed, 44 insertions(+), 35 deletions(-)

diff --git a/src/auditor/taler-helper-auditor-wire.c 
b/src/auditor/taler-helper-auditor-wire.c
index 3d8b0d1f..f275a453 100644
--- a/src/auditor/taler-helper-auditor-wire.c
+++ b/src/auditor/taler-helper-auditor-wire.c
@@ -789,8 +789,8 @@ wire_missing_cb (void *cls,
                  const struct TALER_Amount *amount,
                  const char *payto_uri,
                  struct GNUNET_TIME_Absolute deadline,
-                 /* bool? */ int tiny,
-                 /* bool? */ int done)
+                 bool tiny,
+                 bool done)
 {
   json_t *rep;
 
@@ -802,9 +802,9 @@ wire_missing_cb (void *cls,
   {
     /* In internal mode, we insist that the entry was
        actually marked as tiny. */
-    if ( (GNUNET_YES == tiny) &&
-         (0 > TALER_amount_cmp (amount,
-                                &tiny_amount)) )
+    if (tiny &&
+        (0 > TALER_amount_cmp (amount,
+                               &tiny_amount)) )
       return; /* acceptable, amount was tiny */
   }
   else
diff --git a/src/exchangedb/drop0001.sql b/src/exchangedb/drop0001.sql
index 54338f02..9c77d30c 100644
--- a/src/exchangedb/drop0001.sql
+++ b/src/exchangedb/drop0001.sql
@@ -22,6 +22,9 @@ BEGIN;
 -- Unlike the other SQL files, it SHOULD be updated to reflect the
 -- latest requirements for dropping tables.
 
+-- Unregister patch (exchange-0001.sql)
+SELECT _v.unregister_patch('exchange-0001');
+
 -- Drops for exchange-0001.sql
 DROP TABLE IF EXISTS revolving_work_shards CASCADE;
 DROP TABLE IF EXISTS auditors CASCADE;
@@ -51,8 +54,5 @@ DROP TABLE IF EXISTS denomination_revocations CASCADE;
 DROP TABLE IF EXISTS denominations CASCADE;
 
 
--- Unregister patch (exchange-0001.sql)
-SELECT _v.unregister_patch('exchange-0001');
-
 -- And we're out of here...
 COMMIT;
diff --git a/src/exchangedb/exchange-0001.sql b/src/exchangedb/exchange-0001.sql
index e82d82b4..905b5450 100644
--- a/src/exchangedb/exchange-0001.sql
+++ b/src/exchangedb/exchange-0001.sql
@@ -143,8 +143,8 @@ CREATE INDEX IF NOT EXISTS 
reserves_in_exchange_account_serial
   reserve_in_serial_id DESC
   );
 
-qq
-CREATE TABLE IF NOT EXISTS reserves_closeq
+
+CREATE TABLE IF NOT EXISTS reserves_close
   (close_uuid BIGSERIAL PRIMARY KEY
   ,reserve_uuid INT8 NOT NULL REFERENCES reserves (reserve_uuid) ON DELETE 
CASCADE
   ,execution_date INT8 NOT NULL
diff --git a/src/exchangedb/plugin_exchangedb_postgres.c 
b/src/exchangedb/plugin_exchangedb_postgres.c
index fe21b9d3..e69602bf 100644
--- a/src/exchangedb/plugin_exchangedb_postgres.c
+++ b/src/exchangedb/plugin_exchangedb_postgres.c
@@ -423,16 +423,15 @@ prepare_statements (struct PostgresClosure *pg)
     GNUNET_PQ_make_prepare ("reserve_create",
                             "INSERT INTO reserves "
                             "(reserve_pub"
-                            ",account_details"
                             ",current_balance_val"
                             ",current_balance_frac"
                             ",expiration_date"
                             ",gc_date"
                             ") VALUES "
-                            "($1, $2, $3, $4, $5, $6)"
+                            "($1, $2, $3, $4, $5)"
                             " ON CONFLICT DO NOTHING"
                             " RETURNING reserve_uuid;",
-                            6),
+                            5),
     /* Used in #postgres_insert_reserve_closed() */
     GNUNET_PQ_make_prepare ("reserves_close_insert",
                             "INSERT INTO reserves_close "
@@ -999,6 +998,8 @@ prepare_statements (struct PostgresClosure *pg)
                             "SELECT"
                             " kyc_ok"
                             ",wire_target_serial_id AS payment_target_uuid"
+                            ",wire_salt"
+                            ",payto_uri AS receiver_wire_account"
                             ",amount_with_fee_val"
                             ",amount_with_fee_frac"
                             ",denom.fee_deposit_val"
@@ -1009,11 +1010,10 @@ prepare_statements (struct PostgresClosure *pg)
                             "    JOIN known_coins USING (known_coin_id)"
                             "    JOIN denominations denom USING 
(denominations_serial)"
                             " WHERE ((coin_pub=$1)"
-                            "    AND (merchant_pub=$4)"
+                            "    AND (merchant_pub=$3)"
                             "    AND (h_contract_terms=$2)"
-                            "    AND (h_wire=$3)"
                             " );",
-                            4),
+                            3),
     /* Used in #postgres_get_ready_deposit() */
     GNUNET_PQ_make_prepare ("deposits_get_ready",
                             "SELECT"
@@ -1087,9 +1087,8 @@ prepare_statements (struct PostgresClosure *pg)
                             " JOIN known_coins USING (known_coin_id)"
                             " WHERE coin_pub=$1"
                             "   AND merchant_pub=$2"
-                            "   AND h_contract_terms=$3"
-                            "   AND h_wire=$4;",
-                            5),
+                            "   AND h_contract_terms=$3;",
+                            3),
     /* Used in #postgres_get_coin_transactions() to obtain information
        about how a coin has been spend with /deposit requests. */
     GNUNET_PQ_make_prepare ("get_deposit_with_coin_pub",
@@ -3945,7 +3944,6 @@ postgres_reserves_in_insert (void *cls,
   {
     struct GNUNET_PQ_QueryParam params[] = {
       GNUNET_PQ_query_param_auto_from_type (reserve_pub),
-      GNUNET_PQ_query_param_string (sender_account_details),
       TALER_PQ_query_param_amount (balance),
       TALER_PQ_query_param_absolute_time (&expiry),
       TALER_PQ_query_param_absolute_time (&gc),
@@ -5024,25 +5022,22 @@ postgres_mark_deposit_tiny (void *cls,
  * @param coin_pub the coin to check for deposit
  * @param merchant_pub merchant to receive the deposit
  * @param h_contract_terms contract terms of the deposit
- * @param h_wire hash of the merchant's wire details
  * @return #GNUNET_DB_STATUS_SUCCESS_ONE_RESULT if is is marked done,
  *         #GNUNET_DB_STATUS_SUCCESS_NO_RESULTS if not,
  *         otherwise transaction error status (incl. deposit unknown)
  */
 static enum GNUNET_DB_QueryStatus
-postgres_test_deposit_done (void *cls,
-                            const struct TALER_CoinSpendPublicKeyP *coin_pub,
-                            const struct TALER_MerchantPublicKeyP 
*merchant_pub,
-                            const struct
-                            TALER_PrivateContractHash *h_contract_terms,
-                            const struct TALER_MerchantWireHash *h_wire)
+postgres_test_deposit_done (
+  void *cls,
+  const struct TALER_CoinSpendPublicKeyP *coin_pub,
+  const struct TALER_MerchantPublicKeyP *merchant_pub,
+  const struct TALER_PrivateContractHash *h_contract_terms)
 {
   struct PostgresClosure *pg = cls;
   struct GNUNET_PQ_QueryParam params[] = {
     GNUNET_PQ_query_param_auto_from_type (coin_pub),
     GNUNET_PQ_query_param_auto_from_type (merchant_pub),
     GNUNET_PQ_query_param_auto_from_type (h_contract_terms),
-    GNUNET_PQ_query_param_auto_from_type (h_wire),
     GNUNET_PQ_query_param_end
   };
   uint8_t done = 0;
@@ -7139,6 +7134,10 @@ postgres_lookup_transfer_by_deposit (
        and return #GNUNET_YES! */
     uint8_t ok8 = 0;
     struct GNUNET_PQ_ResultSpec rs2[] = {
+      GNUNET_PQ_result_spec_auto_from_type ("wire_salt",
+                                            &wire_salt),
+      GNUNET_PQ_result_spec_string ("payto_uri",
+                                    &payto_uri),
       GNUNET_PQ_result_spec_uint64 ("payment_target_uuid",
                                     &kyc->payment_target_uuid),
       GNUNET_PQ_result_spec_auto_from_type ("kyc_ok",
@@ -7156,6 +7155,19 @@ postgres_lookup_transfer_by_deposit (
                                                    "get_deposit_for_wtid",
                                                    params,
                                                    rs2);
+    if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qs)
+    {
+      struct TALER_MerchantWireHash wh;
+
+      TALER_merchant_wire_signature_hash (payto_uri,
+                                          &wire_salt,
+                                          &wh);
+      GNUNET_PQ_cleanup_result (rs);
+      if (0 !=
+          GNUNET_memcmp (&wh,
+                         h_wire))
+        return GNUNET_DB_STATUS_SUCCESS_NO_RESULTS;
+    }
     kyc->type = TALER_EXCHANGEDB_KYC_DEPOSIT;
     kyc->ok = (0 != ok8);
     return qs;
diff --git a/src/exchangedb/test_exchangedb.c b/src/exchangedb/test_exchangedb.c
index d48d378a..e3d664f7 100644
--- a/src/exchangedb/test_exchangedb.c
+++ b/src/exchangedb/test_exchangedb.c
@@ -1897,8 +1897,7 @@ run (void *cls)
           plugin->test_deposit_done (plugin->cls,
                                      &deposit.coin.coin_pub,
                                      &deposit.merchant_pub,
-                                     &deposit.h_contract_terms,
-                                     &h_wire));
+                                     &deposit.h_contract_terms));
   FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
           plugin->mark_deposit_done (plugin->cls,
                                      deposit_rowid));
@@ -1908,8 +1907,7 @@ run (void *cls)
           plugin->test_deposit_done (plugin->cls,
                                      &deposit.coin.coin_pub,
                                      &deposit.merchant_pub,
-                                     &deposit.h_contract_terms,
-                                     &h_wire));
+                                     &deposit.h_contract_terms));
 
   result = 10;
   deposit2 = deposit;
diff --git a/src/include/taler_exchangedb_plugin.h 
b/src/include/taler_exchangedb_plugin.h
index 9c6f322e..3c754539 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -2722,7 +2722,6 @@ struct TALER_EXCHANGEDB_Plugin
    * @param coin_pub the coin to check for deposit
    * @param merchant_pub merchant to receive the deposit
    * @param h_contract_terms contract terms of the deposit
-   * @param h_wire hash of the merchant's wire details
    * @return #GNUNET_DB_STATUS_SUCCESS_ONE_RESULT if is is marked done,
    *         #GNUNET_DB_STATUS_SUCCESS_NO_RESULTS if not,
    *         otherwise transaction error status (incl. deposit unknown)
@@ -2731,8 +2730,8 @@ struct TALER_EXCHANGEDB_Plugin
   (*test_deposit_done)(void *cls,
                        const struct TALER_CoinSpendPublicKeyP *coin_pub,
                        const struct TALER_MerchantPublicKeyP *merchant_pub,
-                       const struct TALER_PrivateContractHash 
*h_contract_terms,
-                       const struct TALER_MerchantWireHash *h_wire);
+                       const struct
+                       TALER_PrivateContractHash *h_contract_terms);
 
 
   /**

-- 
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]