gnunet-svn
[Top][All Lists]
Advanced

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

[taler-exchange] 02/02: fix very bad amount subtraction that created fre


From: gnunet
Subject: [taler-exchange] 02/02: fix very bad amount subtraction that created free money under certain circumstances, plus some SQL code cleanup
Date: Tue, 12 Nov 2024 00:03:30 +0100

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

grothoff pushed a commit to branch master
in repository exchange.

commit 1fa05639288928cfdb3fa245a0156c425a1edb6d
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Mon Nov 11 23:59:18 2024 +0100

    fix very bad amount subtraction that created free money under certain 
circumstances, plus some SQL code cleanup
---
 src/exchangedb/exchange_do_purse_merge.sql | 32 +++++++++++++++---------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/exchangedb/exchange_do_purse_merge.sql 
b/src/exchangedb/exchange_do_purse_merge.sql
index 946fd7e97..25b752fcd 100644
--- a/src/exchangedb/exchange_do_purse_merge.sql
+++ b/src/exchangedb/exchange_do_purse_merge.sql
@@ -39,7 +39,7 @@ DECLARE
 DECLARE
   rval RECORD;
 DECLARE
-  reserve RECORD;
+  reserve_bal RECORD;
 DECLARE
   balance taler_amount;
 BEGIN
@@ -64,7 +64,7 @@ ELSE
     partner_serial_id
   INTO
     my_partner_serial_id
-  FROM exchange.partners
+  FROM partners
   WHERE partner_base_url=in_partner_url
     AND start_date <= in_merge_timestamp
     AND end_date > in_merge_timestamp;
@@ -204,28 +204,28 @@ ELSE
   my_amount.val = my_amount.val + my_amount.frac / 100000000;
   my_amount.frac = my_amount.frac % 100000000;
 
-  SELECT *
-   INTO reserve
-   FROM exchange.reserves
-  WHERE reserve_pub=in_reserve_pub;
+  SELECT current_balance
+    INTO reserve_bal
+    FROM reserves
+   WHERE reserve_pub=in_reserve_pub;
 
-  balance = reserve.current_balance;
-  balance.frac=balance.frac+my_amount.frac
-     - CASE
-       WHEN balance.frac + my_amount.frac >= 100000000
-       THEN 100000000
-       ELSE 0
-       END;
+  balance = reserve_bal.current_balance;
   balance.val=balance.val+my_amount.val
      + CASE
        WHEN balance.frac + my_amount.frac >= 100000000
        THEN 1
        ELSE 0
        END;
+  balance.frac=balance.frac+my_amount.frac
+     - CASE
+       WHEN balance.frac + my_amount.frac >= 100000000
+       THEN 100000000
+       ELSE 0
+       END;
 
-  UPDATE exchange.reserves
-  SET current_balance=balance
-  WHERE reserve_pub=in_reserve_pub;
+  UPDATE reserves
+     SET current_balance=balance
+   WHERE reserve_pub=in_reserve_pub;
 
 END IF;
 

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