diff options
| -rw-r--r-- | src/include/taler_exchange_service.h | 44 | ||||
| -rw-r--r-- | src/include/taler_testing_lib.h | 28 | ||||
| -rw-r--r-- | src/lib/exchange_api_refund.c | 58 | ||||
| -rw-r--r-- | src/testing/testing_api_cmd_bank_admin_add_incoming.c | 106 | 
4 files changed, 7 insertions, 229 deletions
| diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h index 6c5889ff..9c342a33 100644 --- a/src/include/taler_exchange_service.h +++ b/src/include/taler_exchange_service.h @@ -962,50 +962,6 @@ TALER_EXCHANGE_refund (struct TALER_EXCHANGE_Handle *exchange,  /** - * Submit a refund request to the exchange and get the exchange's - * response.  This API is used by a merchant.  Note that - * while we return the response verbatim to the caller for further - * processing, we do already verify that the response is well-formed - * (i.e. that signatures included in the response are all valid).  If - * the exchange's reply is not well-formed, we return an HTTP status code - * of zero to @a cb. - * - * The @a exchange must be ready to operate (i.e.  have - * finished processing the /keys reply).  If this check fails, we do - * NOT initiate the transaction with the exchange and instead return NULL. - * - * FIXME: We can probably DEPRECATE this API and only use #TALER_EXCHANGE_refund()! - * - * @param exchange the exchange handle; the exchange must be ready to operate - * @param amount the amount to be refunded; must be larger than the refund fee - *        (as that fee is still being subtracted), and smaller than the amount - *        (with deposit fee) of the original deposit contribution of this coin - * @param h_contract_terms hash of the contact of the merchant with the customer that is being refunded - * @param coin_pub coin’s public key of the coin from the original deposit operation - * @param rtransaction_id transaction id for the transaction between merchant and customer (of refunding operation); - *                        this is needed as we may first do a partial refund and later a full refund.  If both - *                        refunds are also over the same amount, we need the @a rtransaction_id to make the disjoint - *                        refund requests different (as requests are idempotent and otherwise the 2nd refund might not work). - * @param merchant_pub public key of the merchant - * @param merchant_sig signature affirming the refund from the merchant - * @param cb the callback to call when a reply for this request is available - * @param cb_cls closure for the above callback - * @return a handle for this request; NULL if the inputs are invalid (i.e. - *         signatures fail to verify).  In this case, the callback is not called. - */ -struct TALER_EXCHANGE_RefundHandle * -TALER_EXCHANGE_refund2 (struct TALER_EXCHANGE_Handle *exchange, -                        const struct TALER_Amount *amount, -                        const struct GNUNET_HashCode *h_contract_terms, -                        const struct TALER_CoinSpendPublicKeyP *coin_pub, -                        uint64_t rtransaction_id, -                        const struct TALER_MerchantPublicKeyP *merchant_pub, -                        const struct TALER_MerchantSignatureP *merchant_sig, -                        TALER_EXCHANGE_RefundCallback cb, -                        void *cb_cls); - - -/**   * Cancel a refund permission request.  This function cannot be used   * on a request handle if a response is already served for it.  If   * this function is called, the refund may or may not have happened. diff --git a/src/include/taler_testing_lib.h b/src/include/taler_testing_lib.h index b9a11865..f13823fe 100644 --- a/src/include/taler_testing_lib.h +++ b/src/include/taler_testing_lib.h @@ -1127,34 +1127,6 @@ TALER_TESTING_cmd_admin_add_incoming_with_ref (  /** - * Create "fakebank transfer" CMD, letting the caller specifying - * the merchant instance.  This version is useful when a tip - * reserve should be topped up, in fact the interpreter will need - * the "tipping instance" in order to get the instance public key - * and make a wire transfer subject out of it. - * - * @param label command label. - * @param amount amount to transfer. - * @param payto_debit_account which account sends money. - * @param auth authentication data - * @param instance the instance that runs the tipping.  Under this - *        instance, the configuration file will provide the private - *        key of the tipping reserve.  This data will then used to - *        construct the wire transfer subject line. - * @param config_filename configuration file to use. - * @return the command. - */ -struct TALER_TESTING_Command -TALER_TESTING_cmd_admin_add_incoming_with_instance ( -  const char *label, -  const char *amount, -  const struct TALER_BANK_AuthenticationData *auth, -  const char *payto_debit_account, -  const char *instance, -  const char *config_filename); - - -/**   * Modify a fakebank transfer command to enable retries when the   * reserve is not yet full or we get other transient errors from   * the fakebank. diff --git a/src/lib/exchange_api_refund.c b/src/lib/exchange_api_refund.c index f675b07a..537be7b8 100644 --- a/src/lib/exchange_api_refund.c +++ b/src/lib/exchange_api_refund.c @@ -295,59 +295,7 @@ TALER_EXCHANGE_refund (struct TALER_EXCHANGE_Handle *exchange,    GNUNET_CRYPTO_eddsa_sign (&merchant_priv->eddsa_priv,                              &rr,                              &merchant_sig.eddsa_sig); -  return TALER_EXCHANGE_refund2 (exchange, -                                 amount, -                                 h_contract_terms, -                                 coin_pub, -                                 rtransaction_id, -                                 &rr.merchant, -                                 &merchant_sig, -                                 cb, -                                 cb_cls); -} - -/** - * Submit a refund request to the exchange and get the exchange's - * response.  This API is used by a merchant.  Note that - * while we return the response verbatim to the caller for further - * processing, we do already verify that the response is well-formed - * (i.e. that signatures included in the response are all valid).  If - * the exchange's reply is not well-formed, we return an HTTP status code - * of zero to @a cb. - * - * The @a exchange must be ready to operate (i.e.  have - * finished processing the /keys reply).  If this check fails, we do - * NOT initiate the transaction with the exchange and instead return NULL. - * - * @param exchange the exchange handle; the exchange must be ready to operate - * @param amount the amount to be refunded; must be larger than the refund fee - *        (as that fee is still being subtracted), and smaller than the amount - *        (with deposit fee) of the original deposit contribution of this coin - * @param h_contract_terms hash of the contact of the merchant with the customer that is being refunded - * @param coin_pub coin’s public key of the coin from the original deposit operation - * @param rtransaction_id transaction id for the transaction between merchant and customer (of refunding operation); - *                        this is needed as we may first do a partial refund and later a full refund.  If both - *                        refunds are also over the same amount, we need the @a rtransaction_id to make the disjoint - *                        refund requests different (as requests are idempotent and otherwise the 2nd refund might not work). - * @param merchant_pub public key of the merchant - * @param merchant_sig signature affirming the refund from the merchant - * @param cb the callback to call when a reply for this request is available - * @param cb_cls closure for the above callback - * @return a handle for this request; NULL if the inputs are invalid (i.e. - *         signatures fail to verify).  In this case, the callback is not called. - */ -struct TALER_EXCHANGE_RefundHandle * -TALER_EXCHANGE_refund2 (struct TALER_EXCHANGE_Handle *exchange, -                        const struct TALER_Amount *amount, -                        const struct GNUNET_HashCode *h_contract_terms, -                        const struct TALER_CoinSpendPublicKeyP *coin_pub, -                        uint64_t rtransaction_id, -                        const struct TALER_MerchantPublicKeyP *merchant_pub, -                        const struct TALER_MerchantSignatureP *merchant_sig, -                        TALER_EXCHANGE_RefundCallback cb, -                        void *cb_cls) -{    struct TALER_EXCHANGE_RefundHandle *rh;    struct GNUNET_CURL_Context *ctx;    json_t *refund_obj; @@ -378,9 +326,9 @@ TALER_EXCHANGE_refund2 (struct TALER_EXCHANGE_Handle *exchange,                              h_contract_terms),                            "rtransaction_id", (json_int_t) rtransaction_id,                            "merchant_pub", GNUNET_JSON_from_data_auto ( -                            merchant_pub), +                            &rr.merchant),                            "merchant_sig", GNUNET_JSON_from_data_auto ( -                            merchant_sig) +                            &merchant_sig)                            );    if (NULL == refund_obj)    { @@ -398,7 +346,7 @@ TALER_EXCHANGE_refund2 (struct TALER_EXCHANGE_Handle *exchange,    rh->depconf.purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND);    rh->depconf.h_contract_terms = *h_contract_terms;    rh->depconf.coin_pub = *coin_pub; -  rh->depconf.merchant = *merchant_pub; +  rh->depconf.merchant = rr.merchant;    rh->depconf.rtransaction_id = GNUNET_htonll (rtransaction_id);    TALER_amount_hton (&rh->depconf.refund_amount,                       amount); diff --git a/src/testing/testing_api_cmd_bank_admin_add_incoming.c b/src/testing/testing_api_cmd_bank_admin_add_incoming.c index d8b1d7b0..5df691b3 100644 --- a/src/testing/testing_api_cmd_bank_admin_add_incoming.c +++ b/src/testing/testing_api_cmd_bank_admin_add_incoming.c @@ -319,67 +319,10 @@ admin_add_incoming_run (void *cls,    }    else    { -    if (NULL != fts->instance) -    { -      char *section; -      char *keys; -      struct GNUNET_CONFIGURATION_Handle *cfg; - -      GNUNET_assert (NULL != fts->config_filename); -      cfg = GNUNET_CONFIGURATION_create (); -      if (GNUNET_OK != -          GNUNET_CONFIGURATION_load (cfg, -                                     fts->config_filename)) -      { -        GNUNET_break (0); -        TALER_TESTING_interpreter_fail (is); -        return; -      } - -      GNUNET_asprintf (§ion, -                       "instance-%s", -                       fts->instance); -      if (GNUNET_OK != -          GNUNET_CONFIGURATION_get_value_filename -            (cfg, -            section, -            "TIP_RESERVE_PRIV_FILENAME", -            &keys)) -      { -        GNUNET_log (GNUNET_ERROR_TYPE_ERROR, -                    "Configuration fails to specify reserve" -                    " private key filename in section %s\n", -                    section); -        GNUNET_free (section); -        TALER_TESTING_interpreter_fail (is); -        return; -      } -      if (GNUNET_OK != -          GNUNET_CRYPTO_eddsa_key_from_file (keys, -                                             GNUNET_NO, -                                             &fts->reserve_priv.eddsa_priv)) -      { -        GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, -                                   section, -                                   "TIP_RESERVE_PRIV_FILENAME", -                                   "Failed to read private key"); -        GNUNET_free (section); -        GNUNET_free (keys); -        TALER_TESTING_interpreter_fail (is); -        return; -      } -      fts->reserve_priv_known = true; -      GNUNET_free (keys); -      GNUNET_free (section); -      GNUNET_CONFIGURATION_destroy (cfg); -    } -    else -    { -      /* No referenced reserve, no instance to take priv -       * from, no explicit subject given: create new key! */ -      GNUNET_CRYPTO_eddsa_key_create (&fts->reserve_priv.eddsa_priv); -      fts->reserve_priv_known = true; -    } +    /* No referenced reserve, no instance to take priv +     * from, no explicit subject given: create new key! */ +    GNUNET_CRYPTO_eddsa_key_create (&fts->reserve_priv.eddsa_priv); +    fts->reserve_priv_known = true;    }    if (! have_public)      GNUNET_CRYPTO_eddsa_key_get_public (&fts->reserve_priv.eddsa_priv, @@ -621,47 +564,6 @@ TALER_TESTING_cmd_admin_add_incoming_with_ref  /** - * Create "/admin/add-incoming" CMD, letting the caller specifying - * the merchant instance.  This version is useful when a tip - * reserve should be topped up, in fact the interpreter will need - * the "tipping instance" in order to get the instance public key - * and make a wire transfer subject out of it. - * - * @param label command label. - * @param amount amount to transfer. - * @param payto_debit_account which account (expressed as a number) - *        gives money - * @param auth authentication data - * @param instance the instance that runs the tipping.  Under this - *        instance, the configuration file will provide the private - *        key of the tipping reserve.  This data will then used to - *        construct the wire transfer subject line. - * @param config_filename configuration file to use. - * @return the command. - */ -struct TALER_TESTING_Command -TALER_TESTING_cmd_admin_add_incoming_with_instance -  (const char *label, -  const char *amount, -  const struct TALER_BANK_AuthenticationData *auth, -  const char *payto_debit_account, -  const char *instance, -  const char *config_filename) -{ -  struct AdminAddIncomingState *fts; - -  fts = make_fts (amount, -                  auth, -                  payto_debit_account); -  fts->instance = instance; -  fts->config_filename = config_filename; - -  return make_command (label, -                       fts); -} - - -/**   * Modify a fakebank transfer command to enable retries when the   * reserve is not yet full or we get other transient errors from the   * fakebank. | 
