aboutsummaryrefslogtreecommitdiff
path: root/src/exchangedb/exchange_do_recoup_to_reserve.sql
diff options
context:
space:
mode:
Diffstat (limited to 'src/exchangedb/exchange_do_recoup_to_reserve.sql')
-rw-r--r--src/exchangedb/exchange_do_recoup_to_reserve.sql22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/exchangedb/exchange_do_recoup_to_reserve.sql b/src/exchangedb/exchange_do_recoup_to_reserve.sql
index 39baba8f..72942e8c 100644
--- a/src/exchangedb/exchange_do_recoup_to_reserve.sql
+++ b/src/exchangedb/exchange_do_recoup_to_reserve.sql
@@ -31,9 +31,7 @@ CREATE OR REPLACE FUNCTION exchange_do_recoup_to_reserve(
LANGUAGE plpgsql
AS $$
DECLARE
- tmp_val INT8; -- amount recouped
-DECLARE
- tmp_frac INT8; -- amount recouped
+ tmp taler_amount; -- amount recouped
BEGIN
-- Shards: SELECT known_coins (by coin_pub)
-- SELECT recoup (by coin_pub)
@@ -49,8 +47,8 @@ SELECT
remaining_frac
,remaining_val
INTO
- tmp_frac
- ,tmp_val
+ tmp.frac
+ ,tmp.val
FROM exchange.known_coins
WHERE coin_pub=in_coin_pub;
@@ -61,7 +59,7 @@ THEN
RETURN;
END IF;
-IF tmp_val + tmp_frac = 0
+IF tmp.val + tmp.frac = 0
THEN
-- Check for idempotency
SELECT
@@ -87,15 +85,15 @@ UPDATE known_coins
-- Credit the reserve and update reserve timers.
UPDATE reserves
SET
- current_balance_frac=current_balance_frac+tmp_frac
+ current_balance.frac=current_balance.frac+tmp.frac
- CASE
- WHEN current_balance_frac+tmp_frac >= 100000000
+ WHEN current_balance.frac+tmp.frac >= 100000000
THEN 100000000
ELSE 0
END,
- current_balance_val=current_balance_val+tmp_val
+ current_balance.val=current_balance.val+tmp.val
+ CASE
- WHEN current_balance_frac+tmp_frac >= 100000000
+ WHEN current_balance.frac+tmp.frac >= 100000000
THEN 1
ELSE 0
END,
@@ -126,8 +124,8 @@ VALUES
(in_coin_pub
,in_coin_sig
,in_coin_blind
- ,tmp_val
- ,tmp_frac
+ ,tmp.val
+ ,tmp.frac
,in_recoup_timestamp
,in_reserve_out_serial_id);