[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-exchange] branch master updated: update fakebank to match latest
From: |
gnunet |
Subject: |
[taler-exchange] branch master updated: update fakebank to match latest core bank API with 3 /withdrawals endpoints moved top-level |
Date: |
Sat, 23 Sep 2023 11:10:15 +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 493f8fdc update fakebank to match latest core bank API with 3
/withdrawals endpoints moved top-level
493f8fdc is described below
commit 493f8fdc92265f421878e805a4dc4ab5b9a6038d
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Sat Sep 23 11:10:09 2023 +0200
update fakebank to match latest core bank API with 3 /withdrawals endpoints
moved top-level
---
src/bank-lib/Makefile.am | 6 +-
src/bank-lib/fakebank_bank.c | 140 ++++++++++-----------
...thdrawals.c => fakebank_bank_get_withdrawals.c} | 34 +----
...thdrawals.h => fakebank_bank_get_withdrawals.h} | 12 +-
...rt.c => fakebank_bank_post_withdrawals_abort.c} | 29 +----
...rt.h => fakebank_bank_post_withdrawals_abort.h} | 8 +-
....c => fakebank_bank_post_withdrawals_confirm.c} | 32 +----
....h => fakebank_bank_post_withdrawals_confirm.h} | 8 +-
8 files changed, 92 insertions(+), 177 deletions(-)
diff --git a/src/bank-lib/Makefile.am b/src/bank-lib/Makefile.am
index 783ed825..3458b7a0 100644
--- a/src/bank-lib/Makefile.am
+++ b/src/bank-lib/Makefile.am
@@ -69,11 +69,11 @@ libtalerfakebank_la_SOURCES = \
fakebank_bank.c fakebank_bank.h \
fakebank_bank_accounts_withdrawals.c fakebank_bank_accounts_withdrawals.h \
fakebank_bank_get_accounts.c fakebank_bank_get_accounts.h \
- fakebank_bank_get_accounts_withdrawals.c
fakebank_bank_get_accounts_withdrawals.h \
+ fakebank_bank_get_withdrawals.c fakebank_bank_get_withdrawals.h \
fakebank_bank_get_root.c fakebank_bank_get_root.h \
fakebank_bank_post_accounts_withdrawals.c
fakebank_bank_post_accounts_withdrawals.h \
- fakebank_bank_post_accounts_withdrawals_abort.c
fakebank_bank_post_accounts_withdrawals_abort.h \
- fakebank_bank_post_accounts_withdrawals_confirm.c
fakebank_bank_post_accounts_withdrawals_confirm.h \
+ fakebank_bank_post_withdrawals_abort.c
fakebank_bank_post_withdrawals_abort.h \
+ fakebank_bank_post_withdrawals_confirm.c
fakebank_bank_post_withdrawals_confirm.h \
fakebank_bank_testing_register.c fakebank_bank_testing_register.h \
fakebank_tbr.c fakebank_tbr.h \
fakebank_tbr_get_history.c fakebank_tbr_get_history.h \
diff --git a/src/bank-lib/fakebank_bank.c b/src/bank-lib/fakebank_bank.c
index 8c3c48d1..ec7862ac 100644
--- a/src/bank-lib/fakebank_bank.c
+++ b/src/bank-lib/fakebank_bank.c
@@ -31,11 +31,11 @@
#include "fakebank_tbr.h"
#include "fakebank_twg.h"
#include "fakebank_bank_get_accounts.h"
-#include "fakebank_bank_get_accounts_withdrawals.h"
+#include "fakebank_bank_get_withdrawals.h"
#include "fakebank_bank_get_root.h"
#include "fakebank_bank_post_accounts_withdrawals.h"
-#include "fakebank_bank_post_accounts_withdrawals_abort.h"
-#include "fakebank_bank_post_accounts_withdrawals_confirm.h"
+#include "fakebank_bank_post_withdrawals_abort.h"
+#include "fakebank_bank_post_withdrawals_confirm.h"
#include "fakebank_bank_testing_register.h"
@@ -149,6 +149,69 @@ TALER_FAKEBANK_bank_main_ (
url);
}
+ if ( (0 == strncmp (url,
+ "/withdrawals/",
+ strlen ("/withdrawals/"))) &&
+ (0 == strcasecmp (method,
+ MHD_HTTP_METHOD_GET)) )
+ {
+ /* GET /withdrawals/$WID */
+ const char *wid;
+
+ wid = &url[strlen ("/withdrawals/")];
+ return TALER_FAKEBANK_bank_get_withdrawals_ (h,
+ connection,
+ wid);
+ }
+
+ if ( (0 == strncmp (url,
+ "/withdrawals/",
+ strlen ("/withdrawals/"))) &&
+ (0 == strcasecmp (method,
+ MHD_HTTP_METHOD_POST)) )
+ {
+ /* POST /withdrawals/$WID* */
+ const char *wid = url + strlen ("/withdrawals/");
+ const char *opid = strchr (wid,
+ '/');
+ char *wi;
+
+ if (NULL == opid)
+ {
+ /* POST /withdrawals/$WID (not defined) */
+ GNUNET_break_op (0);
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_NOT_FOUND,
+ TALER_EC_GENERIC_ENDPOINT_UNKNOWN,
+ url);
+ }
+ wi = GNUNET_strndup (wid,
+ opid - wid);
+ if (0 == strcmp (opid,
+ "/abort"))
+ {
+ /* POST /withdrawals/$WID/abort */
+ MHD_RESULT ret;
+
+ ret = TALER_FAKEBANK_bank_withdrawals_abort_ (h,
+ connection,
+ wi);
+ GNUNET_free (wi);
+ return ret;
+ }
+ if (0 == strcmp (opid,
+ "/confirm"))
+ {
+ /* POST /withdrawals/$WID/confirm */
+ MHD_RESULT ret;
+
+ ret = TALER_FAKEBANK_bank_withdrawals_confirm_ (h,
+ connection,
+ wi);
+ GNUNET_free (wi);
+ return ret;
+ }
+ }
if (0 == strncmp (url,
"/accounts/",
@@ -297,25 +360,6 @@ TALER_FAKEBANK_bank_main_ (
TALER_EC_GENERIC_CLIENT_INTERNAL_ERROR,
url);
}
- if (0 == strncmp (end_acc,
- "/withdrawals/",
- strlen ("/withdrawals/")))
- {
- /* GET /accounts/$ACCOUNT/withdrawals/$WID */
- const char *wid;
- char *acc;
- MHD_RESULT ret;
-
- acc = GNUNET_strndup (acc_name,
- end_acc - acc_name);
- wid = &end_acc[strlen ("/withdrawals/")];
- ret = TALER_FAKEBANK_bank_get_accounts_withdrawals_ (h,
- connection,
- acc,
- wid);
- GNUNET_free (acc);
- return ret;
- }
if (0 == strcmp (end_acc,
"/cashouts"))
{
@@ -433,58 +477,6 @@ TALER_FAKEBANK_bank_main_ (
GNUNET_free (acc);
return ret;
}
-
- if (0 == strncmp (end_acc,
- "/withdrawals/",
- strlen ("/withdrawals/")))
- {
- /* POST /accounts/$ACCOUNT/withdrawals/$WID* */
- const char *wid = end_acc + strlen ("/withdrawals/");
- const char *opid = strchr (wid,
- '/');
- char *wi;
-
- if (NULL == opid)
- {
- /* POST /accounts/$ACCOUNT/withdrawals/$WID (not defined) */
- GNUNET_break_op (0);
- GNUNET_free (acc);
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_GENERIC_ENDPOINT_UNKNOWN,
- acc_name);
- }
- wi = GNUNET_strndup (wid,
- opid - wid);
- if (0 == strcmp (opid,
- "/abort"))
- {
- /* POST /accounts/$ACCOUNT/withdrawals/$WID/abort */
- MHD_RESULT ret;
-
- ret = TALER_FAKEBANK_bank_withdrawals_abort_ (h,
- connection,
- acc,
- wi);
- GNUNET_free (wi);
- GNUNET_free (acc);
- return ret;
- }
- if (0 == strcmp (opid,
- "/confirm"))
- {
- /* POST /accounts/$ACCOUNT/withdrawals/$WID/confirm */
- MHD_RESULT ret;
-
- ret = TALER_FAKEBANK_bank_withdrawals_confirm_ (h,
- connection,
- acc,
- wi);
- GNUNET_free (wi);
- GNUNET_free (acc);
- return ret;
- }
- }
}
}
diff --git a/src/bank-lib/fakebank_bank_get_accounts_withdrawals.c
b/src/bank-lib/fakebank_bank_get_withdrawals.c
similarity index 68%
rename from src/bank-lib/fakebank_bank_get_accounts_withdrawals.c
rename to src/bank-lib/fakebank_bank_get_withdrawals.c
index 176b6fb4..7f65e866 100644
--- a/src/bank-lib/fakebank_bank_get_accounts_withdrawals.c
+++ b/src/bank-lib/fakebank_bank_get_withdrawals.c
@@ -17,8 +17,8 @@
see <http://www.gnu.org/licenses/>
*/
/**
- * @file bank-lib/fakebank_bank_get_accounts_withdrawals.c
- * @brief implements the Taler Bank API "GET /accounts/ACC/withdrawals/WID"
handler
+ * @file bank-lib/fakebank_bank_get_withdrawals.c
+ * @brief implements the Taler Bank API "GET /withdrawals/$WID" handler
* @author Christian Grothoff <christian@grothoff.org>
*/
#include "platform.h"
@@ -28,29 +28,26 @@
#include "taler_mhd_lib.h"
#include <gnunet/gnunet_mhd_compat.h>
#include "fakebank.h"
-#include "fakebank_bank_get_accounts_withdrawals.h"
+#include "fakebank_bank_get_withdrawals.h"
#include "fakebank_common_lookup.h"
/**
- * Handle GET /accounts/${account_name}/withdrawals/{withdrawal_id} request
+ * Handle GET /withdrawals/{withdrawal_id} request
* to the Taler bank access API.
*
* @param h the handle
* @param connection the connection
- * @param account_name name of the account
* @param withdrawal_id withdrawal ID to return status of
* @return MHD result code
*/
MHD_RESULT
-TALER_FAKEBANK_bank_get_accounts_withdrawals_ (
+TALER_FAKEBANK_bank_get_withdrawals_ (
struct TALER_FAKEBANK_Handle *h,
struct MHD_Connection *connection,
- const char *account_name,
const char *withdrawal_id)
{
struct WithdrawalOperation *wo;
- struct Account *acc;
GNUNET_assert (0 ==
pthread_mutex_lock (&h->big_lock));
@@ -65,27 +62,6 @@ TALER_FAKEBANK_bank_get_accounts_withdrawals_ (
TALER_EC_BANK_TRANSACTION_NOT_FOUND,
withdrawal_id);
}
- acc = TALER_FAKEBANK_lookup_account_ (h,
- account_name,
- NULL);
- if (NULL == acc)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_BANK_UNKNOWN_ACCOUNT,
- account_name);
- }
- if (wo->debit_account != acc)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_BANK_TRANSACTION_NOT_FOUND,
- account_name);
- }
GNUNET_assert (0 ==
pthread_mutex_unlock (&h->big_lock));
return TALER_MHD_REPLY_JSON_PACK (
diff --git a/src/bank-lib/fakebank_bank_get_accounts_withdrawals.h
b/src/bank-lib/fakebank_bank_get_withdrawals.h
similarity index 79%
rename from src/bank-lib/fakebank_bank_get_accounts_withdrawals.h
rename to src/bank-lib/fakebank_bank_get_withdrawals.h
index 53dd873e..a753dcee 100644
--- a/src/bank-lib/fakebank_bank_get_accounts_withdrawals.h
+++ b/src/bank-lib/fakebank_bank_get_withdrawals.h
@@ -21,32 +21,30 @@
* @brief implements the Taler Bank API "GET /accounts/ACC/withdrawals/WID"
handler
* @author Christian Grothoff <christian@grothoff.org>
*/
-#ifndef FAKEBANK_BANK_GET_ACCOUNTS_WITHDRAWALS_H
-#define FAKEBANK_BANK_GET_ACCOUNTS_WITHDRAWALS_H
+#ifndef FAKEBANK_BANK_GET_WITHDRAWALS_H
+#define FAKEBANK_BANK_GET_WITHDRAWALS_H
#include "taler_fakebank_lib.h"
#include "taler_bank_service.h"
#include "taler_mhd_lib.h"
#include <gnunet/gnunet_mhd_compat.h>
#include "fakebank.h"
-#include "fakebank_bank_get_accounts_withdrawals.h"
+#include "fakebank_bank_get_withdrawals.h"
/**
- * Handle GET /accounts/${account_name}/withdrawals/{withdrawal_id} request
+ * Handle GET /withdrawals/{withdrawal_id} request
* to the Taler bank access API.
*
* @param h the handle
* @param connection the connection
- * @param account_name name of the account
* @param withdrawal_id withdrawal ID to return status of
* @return MHD result code
*/
MHD_RESULT
-TALER_FAKEBANK_bank_get_accounts_withdrawals_ (
+TALER_FAKEBANK_bank_get_withdrawals_ (
struct TALER_FAKEBANK_Handle *h,
struct MHD_Connection *connection,
- const char *account_name,
const char *withdrawal_id);
diff --git a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_abort.c
b/src/bank-lib/fakebank_bank_post_withdrawals_abort.c
similarity index 69%
rename from src/bank-lib/fakebank_bank_post_accounts_withdrawals_abort.c
rename to src/bank-lib/fakebank_bank_post_withdrawals_abort.c
index 4a252f9b..f8ebf1b9 100644
--- a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_abort.c
+++ b/src/bank-lib/fakebank_bank_post_withdrawals_abort.c
@@ -17,7 +17,7 @@
see <http://www.gnu.org/licenses/>
*/
/**
- * @file bank-lib/fakebank_bank_post_accounts_withdrawals_abort.c
+ * @file bank-lib/fakebank_bank_post_withdrawals_abort.c
* @brief implement bank API withdrawals /abort endpoint
* @author Christian Grothoff <christian@grothoff.org>
*/
@@ -28,7 +28,7 @@
#include "taler_mhd_lib.h"
#include <gnunet/gnunet_mhd_compat.h>
#include "fakebank.h"
-#include "fakebank_bank_post_accounts_withdrawals_abort.h"
+#include "fakebank_bank_post_withdrawals_abort.h"
#include "fakebank_common_lookup.h"
#include "fakebank_common_lp.h"
@@ -37,11 +37,9 @@ MHD_RESULT
TALER_FAKEBANK_bank_withdrawals_abort_ (
struct TALER_FAKEBANK_Handle *h,
struct MHD_Connection *connection,
- const char *account_name,
const char *withdrawal_id)
{
struct WithdrawalOperation *wo;
- struct Account *acc;
GNUNET_assert (0 ==
pthread_mutex_lock (&h->big_lock));
@@ -56,27 +54,6 @@ TALER_FAKEBANK_bank_withdrawals_abort_ (
TALER_EC_BANK_TRANSACTION_NOT_FOUND,
withdrawal_id);
}
- acc = TALER_FAKEBANK_lookup_account_ (h,
- account_name,
- NULL);
- if (NULL == acc)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_BANK_UNKNOWN_ACCOUNT,
- account_name);
- }
- if (wo->debit_account != acc)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_BANK_TRANSACTION_NOT_FOUND,
- account_name);
- }
if (wo->confirmation_done)
{
GNUNET_assert (0 ==
@@ -84,7 +61,7 @@ TALER_FAKEBANK_bank_withdrawals_abort_ (
return TALER_MHD_reply_with_error (connection,
MHD_HTTP_CONFLICT,
TALER_EC_BANK_ABORT_CONFIRM_CONFLICT,
- account_name);
+ withdrawal_id);
}
wo->aborted = true;
TALER_FAKEBANK_notify_withdrawal_ (h,
diff --git a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_abort.h
b/src/bank-lib/fakebank_bank_post_withdrawals_abort.h
similarity index 83%
rename from src/bank-lib/fakebank_bank_post_accounts_withdrawals_abort.h
rename to src/bank-lib/fakebank_bank_post_withdrawals_abort.h
index ba99e493..fcc94e20 100644
--- a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_abort.h
+++ b/src/bank-lib/fakebank_bank_post_withdrawals_abort.h
@@ -21,8 +21,8 @@
* @brief implement bank API withdrawals /abort endpoint
* @author Christian Grothoff <christian@grothoff.org>
*/
-#ifndef FAKEBANK_BANK_POST_ACCOUNTS_WITHDRAWALS_ABORT_H
-#define FAKEBANK_BANK_POST_ACCOUNTS_WITHDRAWALS_ABORT_H
+#ifndef FAKEBANK_BANK_POST_WITHDRAWALS_ABORT_H
+#define FAKEBANK_BANK_POST_WITHDRAWALS_ABORT_H
#include "taler_fakebank_lib.h"
#include "taler_bank_service.h"
@@ -32,11 +32,10 @@
/**
- * Handle POST /accounts/{account_name}/withdrawals/{withdrawal_id}/abort
request.
+ * Handle POST /withdrawals/{withdrawal_id}/abort request.
*
* @param h our fakebank handle
* @param connection the connection
- * @param account_name name of the debited account
* @param withdrawal_id the withdrawal operation identifier
* @return MHD result code
*/
@@ -44,7 +43,6 @@ MHD_RESULT
TALER_FAKEBANK_bank_withdrawals_abort_ (
struct TALER_FAKEBANK_Handle *h,
struct MHD_Connection *connection,
- const char *account_name,
const char *withdrawal_id);
#endif
diff --git a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.c
b/src/bank-lib/fakebank_bank_post_withdrawals_confirm.c
similarity index 76%
rename from src/bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.c
rename to src/bank-lib/fakebank_bank_post_withdrawals_confirm.c
index 232b4f92..90aaf5e2 100644
--- a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.c
+++ b/src/bank-lib/fakebank_bank_post_withdrawals_confirm.c
@@ -17,7 +17,7 @@
see <http://www.gnu.org/licenses/>
*/
/**
- * @file bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.c
+ * @file bank-lib/fakebank_bank_post_withdrawals_confirm.c
* @brief implement bank API withdrawals /confirm endpoint
* @author Christian Grothoff <christian@grothoff.org>
*/
@@ -28,18 +28,17 @@
#include "taler_mhd_lib.h"
#include <gnunet/gnunet_mhd_compat.h>
#include "fakebank.h"
-#include "fakebank_bank_post_accounts_withdrawals_confirm.h"
+#include "fakebank_bank_post_withdrawals_confirm.h"
#include "fakebank_common_lookup.h"
#include "fakebank_common_lp.h"
#include "fakebank_common_make_admin_transfer.h"
/**
- * Handle POST /accounts/{account_name}/withdrawals/{withdrawal_id}/confirm
request.
+ * Handle POST /withdrawals/{withdrawal_id}/confirm request.
*
* @param h our fakebank handle
* @param connection the connection
- * @param account_name name of the debited account
* @param withdrawal_id the withdrawal operation identifier
* @return MHD result code
*/
@@ -47,11 +46,9 @@ MHD_RESULT
TALER_FAKEBANK_bank_withdrawals_confirm_ (
struct TALER_FAKEBANK_Handle *h,
struct MHD_Connection *connection,
- const char *account_name,
const char *withdrawal_id)
{
struct WithdrawalOperation *wo;
- struct Account *acc;
GNUNET_assert (0 ==
pthread_mutex_lock (&h->big_lock));
@@ -66,27 +63,6 @@ TALER_FAKEBANK_bank_withdrawals_confirm_ (
TALER_EC_BANK_TRANSACTION_NOT_FOUND,
withdrawal_id);
}
- acc = TALER_FAKEBANK_lookup_account_ (h,
- account_name,
- NULL);
- if (NULL == acc)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_BANK_UNKNOWN_ACCOUNT,
- account_name);
- }
- if (wo->debit_account != acc)
- {
- GNUNET_assert (0 ==
- pthread_mutex_unlock (&h->big_lock));
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_NOT_FOUND,
- TALER_EC_BANK_TRANSACTION_NOT_FOUND,
- account_name);
- }
if (NULL == wo->exchange_account)
{
GNUNET_assert (0 ==
@@ -103,7 +79,7 @@ TALER_FAKEBANK_bank_withdrawals_confirm_ (
return TALER_MHD_reply_with_error (connection,
MHD_HTTP_CONFLICT,
TALER_EC_BANK_CONFIRM_ABORT_CONFLICT,
- account_name);
+ withdrawal_id);
}
GNUNET_assert (0 ==
pthread_mutex_unlock (&h->big_lock));
diff --git a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.h
b/src/bank-lib/fakebank_bank_post_withdrawals_confirm.h
similarity index 83%
rename from src/bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.h
rename to src/bank-lib/fakebank_bank_post_withdrawals_confirm.h
index 2c301ca2..56cd2ded 100644
--- a/src/bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.h
+++ b/src/bank-lib/fakebank_bank_post_withdrawals_confirm.h
@@ -17,12 +17,12 @@
see <http://www.gnu.org/licenses/>
*/
/**
- * @file bank-lib/fakebank_bank_post_accounts_withdrawals_confirm.h
+ * @file bank-lib/fakebank_bank_post_withdrawals_confirm.h
* @brief implement bank API withdrawals /confirm endpoint
* @author Christian Grothoff <christian@grothoff.org>
*/
-#ifndef FAKEBANK_BANK_POST_ACCOUNTS_WITHDRAWALS_CONFIRM_H
-#define FAKEBANK_BANK_POST_ACCOUNTS_WITHDRAWALS_CONFIRM_H
+#ifndef FAKEBANK_BANK_POST_WITHDRAWALS_CONFIRM_H
+#define FAKEBANK_BANK_POST_WITHDRAWALS_CONFIRM_H
#include "taler_fakebank_lib.h"
#include "taler_bank_service.h"
@@ -36,7 +36,6 @@
*
* @param h our fakebank handle
* @param connection the connection
- * @param account_name name of the debited account
* @param withdrawal_id the withdrawal operation identifier
* @return MHD result code
*/
@@ -44,7 +43,6 @@ MHD_RESULT
TALER_FAKEBANK_bank_withdrawals_confirm_ (
struct TALER_FAKEBANK_Handle *h,
struct MHD_Connection *connection,
- const char *account_name,
const char *withdrawal_id);
#endif
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-exchange] branch master updated: update fakebank to match latest core bank API with 3 /withdrawals endpoints moved top-level,
gnunet <=