on idempotent deposit, just skip most of the transaction
This commit is contained in:
parent
e2fe36a0be
commit
13d90bb1a3
@ -67,6 +67,7 @@ IF NOT FOUND
|
||||
THEN
|
||||
-- Idempotency check: check if coin_sig is the same,
|
||||
-- if so, success, otherwise conflict!
|
||||
|
||||
PERFORM
|
||||
FROM exchange.purse_deposits
|
||||
WHERE coin_pub = in_coin_pub
|
||||
@ -79,6 +80,12 @@ THEN
|
||||
out_late=FALSE;
|
||||
out_conflict=TRUE;
|
||||
RETURN;
|
||||
ELSE
|
||||
-- Deposit exists, do not count for balance. Allow.
|
||||
out_late=FALSE;
|
||||
out_balance_ok=TRUE;
|
||||
out_conflict=FALSE;
|
||||
RETURN;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
This file is part of TALER
|
||||
Copyright (C) 2014--2022 Taler Systems SA
|
||||
Copyright (C) 2014--2023 Taler Systems SA
|
||||
|
||||
TALER is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
@ -250,6 +250,14 @@ run (void *cls,
|
||||
"withdraw-coin-1",
|
||||
"EUR:1.01",
|
||||
NULL),
|
||||
TALER_TESTING_cmd_purse_deposit_coins (
|
||||
"purse-deposit-coins-idempotent-but-gone",
|
||||
MHD_HTTP_GONE,
|
||||
0 /* min age */,
|
||||
"purse-create-with-reserve",
|
||||
"withdraw-coin-1",
|
||||
"EUR:1.01",
|
||||
NULL),
|
||||
TALER_TESTING_cmd_purse_poll_finish (
|
||||
"pull-deposit-purse-poll-finish",
|
||||
GNUNET_TIME_relative_multiply (
|
||||
|
Loading…
Reference in New Issue
Block a user