expose KYC traits for withdraw/get deposits commands

This commit is contained in:
Christian Grothoff 2021-11-07 14:12:54 +01:00
parent 121bfe3659
commit 659cd4439d
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
3 changed files with 18 additions and 2 deletions

View File

@ -2368,6 +2368,7 @@ TALER_TESTING_get_trait (const struct TALER_TESTING_Trait *traits,
op (taler_uri, const char *) \
op (payto_uri, const char *) \
op (row, const uint64_t) \
op (payment_target_uuid, const uint64_t) \
op (array_length, const unsigned int) \
op (credit_payto_uri, const char *) \
op (debit_payto_uri, const char *) \

View File

@ -49,6 +49,12 @@ struct TrackTransactionState
*/
unsigned int expected_response_code;
/**
* Set to the KYC UUID *if* the exchange replied with
* a request for KYC (#MHD_HTTP_ACCEPTED).
*/
uint64_t kyc_uuid;
/**
* Reference to any operation that can provide a transaction.
* Will be the transaction to track.
@ -147,6 +153,7 @@ deposit_wtid_cb (void *cls,
break;
case MHD_HTTP_ACCEPTED:
/* allowed, nothing to check here */
tts->kyc_uuid = dr->details.accepted.payment_target_uuid;
break;
case MHD_HTTP_NOT_FOUND:
/* allowed, nothing to check here */
@ -306,6 +313,7 @@ track_transaction_traits (void *cls,
struct TrackTransactionState *tts = cls;
struct TALER_TESTING_Trait traits[] = {
TALER_TESTING_make_trait_wtid (&tts->wtid),
TALER_TESTING_make_trait_payment_target_uuid (&tts->kyc_uuid),
TALER_TESTING_trait_end ()
};

View File

@ -126,6 +126,12 @@ struct WithdrawState
*/
struct GNUNET_TIME_Relative total_backoff;
/**
* Set to the KYC UUID *if* the exchange replied with
* a request for KYC.
*/
uint64_t kyc_uuid;
/**
* Expected HTTP response code to the request.
*/
@ -253,7 +259,7 @@ reserve_withdraw_cb (void *cls,
break;
case MHD_HTTP_ACCEPTED:
/* nothing to check */
/* TODO: trait for returned uuid! */
ws->kyc_uuid = wr->details.accepted.payment_target_uuid;
break;
case MHD_HTTP_FORBIDDEN:
/* nothing to check */
@ -287,7 +293,7 @@ reserve_withdraw_cb (void *cls,
* @param[out] idx where we set $INDEX
* @return #GNUNET_SYSERR if $INDEX is present but not numeric
*/
static int
static enum GNUNET_GenericReturnValue
parse_coin_reference (const char *coin_reference,
char **cref,
unsigned int *idx)
@ -528,6 +534,7 @@ withdraw_traits (void *cls,
TALER_TESTING_make_trait_reserve_priv (reserve_priv),
TALER_TESTING_make_trait_reserve_pub (reserve_pub),
TALER_TESTING_make_trait_amount (&ws->amount),
TALER_TESTING_make_trait_payment_target_uuid (&ws->kyc_uuid),
TALER_TESTING_make_trait_exchange_url (
(const char **) &ws->exchange_url),
TALER_TESTING_trait_end ()