gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-donau] 03/03: solve merge conflicts


From: gnunet
Subject: [taler-donau] 03/03: solve merge conflicts
Date: Tue, 28 Nov 2023 01:27:03 +0100

This is an automated email from the git hooks/post-receive script.

lukas-matyja pushed a commit to branch master
in repository donau.

commit ffe0a1499466134eedadbce02bc09dd65b680f85
Merge: 8b43033 7101c75
Author: Matyja Lukas Adam <lukas.matyja@students.bfh.ch>
AuthorDate: Tue Nov 28 01:26:02 2023 +0100

    solve merge conflicts

 contrib/gana                                       |    2 +-
 doc/Makefile.am                                    |    2 +-
 src/donau-tools/Makefile.am                        |    6 +-
 src/donau-tools/taler-donau-dbinit.c               |   12 +-
 src/donau-tools/taler-donau-offline.c              |  548 ++--
 src/donau/Makefile.am                              |   88 +-
 src/donau/donau-httpd.c                            | 1079 +-------
 src/donau/donau-httpd.h                            |   11 +-
 src/donau/donau-httpd_batch-issue_receipts.c       |   12 +-
 src/donau/donau-httpd_batch-issue_receipts.h       |    4 +-
 src/donau/donau-httpd_batch-submit_receipts.c      |   32 +-
 src/donau/donau-httpd_batch-submit_receipts.h      |    4 +-
 src/donau/donau-httpd_charities_close.c            |   10 +-
 src/donau/donau-httpd_charities_close.h            |    4 +-
 src/donau/donau-httpd_charities_get.c              |    6 +-
 src/donau/donau-httpd_charities_get.h              |    4 +-
 src/donau/donau-httpd_charities_history.c          |   10 +-
 src/donau/donau-httpd_charities_history.h          |    4 +-
 src/donau/donau-httpd_charities_open.c             |    6 +-
 src/donau/donau-httpd_charities_open.h             |    4 +-
 src/donau/donau-httpd_charities_status.c           |   10 +-
 src/donau/donau-httpd_charities_status.h           |    4 +-
 src/donau/donau-httpd_common_submit_receipts.c     |    2 +-
 src/donau/donau-httpd_common_submit_receipts.h     |    8 +-
 src/donau/donau-httpd_config.c                     |    6 +-
 src/donau/donau-httpd_config.h                     |    4 +-
 src/donau/donau-httpd_csr.c                        |   10 +-
 src/donau/donau-httpd_csr.h                        |    4 +-
 src/donau/donau-httpd_db.c                         |   20 +-
 src/donau/donau-httpd_db.h                         |   10 +-
 src/donau/donau-httpd_issue_receipts.c             |   12 +-
 src/donau/donau-httpd_issue_receipts.h             |    4 +-
 src/donau/donau-httpd_keys.c                       |   50 +-
 src/donau/donau-httpd_keys.h                       |   34 +-
 src/donau/donau-httpd_metrics.c                    |    6 +-
 src/donau/donau-httpd_metrics.h                    |    4 +-
 src/donau/donau-httpd_mhd.c                        |    6 +-
 src/donau/donau-httpd_mhd.h                        |    4 +-
 src/donau/donau-httpd_responses.c                  |  114 +-
 src/donau/donau-httpd_responses.h                  |   16 +-
 src/donau/donau-httpd_submit_receipts_get.c        |   22 +-
 src/donau/donau-httpd_submit_receipts_get.h        |    4 +-
 src/donau/donau-httpd_terms.c                      |    4 +-
 src/donau/donau-httpd_terms.h                      |   10 +-
 src/donaudb/Makefile.am                            |  217 +-
 src/donaudb/donaudb_plugin.c                       |   84 +-
 src/donaudb/donaudb_transactions.c                 |  334 +--
 src/donaudb/pg_activate_signing_key.c              |    4 +-
 src/donaudb/pg_activate_signing_key.h              |    4 +-
 src/donaudb/pg_add_donation_unit_key.c             |    4 +-
 src/donaudb/pg_add_donation_unit_key.h             |    4 +-
 src/donaudb/pg_commit.c                            |    4 +-
 src/donaudb/pg_commit.h                            |    4 +-
 src/donaudb/pg_create_tables.c                     |    4 +-
 src/donaudb/pg_create_tables.h                     |    4 +-
 src/donaudb/pg_drop_tables.c                       |    4 +-
 src/donaudb/pg_drop_tables.h                       |    4 +-
 src/donaudb/pg_event_listen.c                      |    4 +-
 src/donaudb/pg_event_listen.h                      |    4 +-
 src/donaudb/pg_event_listen_cancel.c               |    4 +-
 src/donaudb/pg_event_listen_cancel.h               |    4 +-
 src/donaudb/pg_event_notify.c                      |    4 +-
 src/donaudb/pg_event_notify.h                      |    4 +-
 src/donaudb/pg_get_donation_unit_info.c            |   10 +-
 src/donaudb/pg_get_donation_unit_info.h            |    6 +-
 src/donaudb/pg_insert_charity.c                    |    9 +-
 src/donaudb/pg_insert_charity.h                    |   15 +-
 src/donaudb/pg_insert_history_entry.c              |   11 +-
 src/donaudb/pg_insert_history_entry.h              |   21 +-
 src/donaudb/pg_insert_issued_receipt.c             |   13 +-
 src/donaudb/pg_insert_issued_receipt.h             |   17 +-
 src/donaudb/pg_insert_submitted_receipt.c          |   17 +-
 src/donaudb/pg_insert_submitted_receipt.h          |   29 +-
 src/donaudb/pg_lookup_donation_unit_key.c          |    9 +-
 src/donaudb/pg_lookup_donation_unit_key.h          |    6 +-
 src/donaudb/pg_lookup_signing_key.c                |    4 +-
 src/donaudb/pg_lookup_signing_key.h                |    7 +-
 src/donaudb/pg_preflight.c                         |    4 +-
 src/donaudb/pg_preflight.h                         |    4 +-
 src/donaudb/pg_rollback.c                          |    4 +-
 src/donaudb/pg_rollback.h                          |    4 +-
 src/donaudb/pg_start.c                             |    4 +-
 src/donaudb/pg_start.h                             |    4 +-
 src/donaudb/pg_start_read_committed.c              |    4 +-
 src/donaudb/pg_start_read_committed.h              |    4 +-
 src/donaudb/pg_start_read_only.c                   |    4 +-
 src/donaudb/pg_start_read_only.h                   |    4 +-
 src/donaudb/pg_template.c                          |    4 +-
 src/donaudb/pg_template.h                          |    4 +-
 src/donaudb/plugin_donaudb_common.c                |  344 +--
 src/donaudb/plugin_donaudb_common.h                |    9 +-
 src/donaudb/plugin_donaudb_postgres.c              |  980 ++-----
 src/donaudb/test_donaudb.c                         |  158 +-
 src/include/donau_service.h                        |  295 +--
 src/include/donaudb_lib.h                          |   69 +-
 src/include/donaudb_plugin.h                       |   38 +-
 src/json/Makefile.am                               |    2 +-
 src/json/test_json.c                               |    4 +-
 src/lib/Makefile.am                                |    6 +-
 src/lib/donau_api_batch_issue_receipts.c           |   78 +-
 src/lib/donau_api_batch_issue_receipts2.c          |   76 +-
 src/lib/donau_api_batch_submit_receipts.c          |  122 +-
 src/lib/donau_api_charities_close.c                |   40 +-
 src/lib/donau_api_charities_get.c                  |   36 +-
 src/lib/donau_api_charities_history.c              |   78 +-
 src/lib/donau_api_charities_open.c                 |   74 +-
 src/lib/donau_api_charities_status.c               |   72 +-
 src/lib/donau_api_common.c                         |  220 +-
 src/lib/donau_api_common.h                         |   38 +-
 src/lib/donau_api_csr_issue_receipts.c             |   44 +-
 src/lib/donau_api_curl_defaults.c                  |    2 +-
 src/lib/donau_api_curl_defaults.h                  |    2 +-
 src/lib/donau_api_handle.c                         |  406 ++-
 src/lib/donau_api_handle.h                         |    2 +-
 src/lib/donau_api_issue_receipts.c                 |   90 +-
 src/lib/donau_api_issue_receipts2.c                |   80 +-
 src/lib/donau_api_submit_receipts_get.c            |   68 +-
 src/lib/donau_api_transfers_get.c                  |   52 +-
 src/pq/Makefile.am                                 |    4 +-
 src/pq/pq_query_helper.c                           | 1102 +-------
 src/pq/pq_result_helper.c                          | 2800 ++++++++++----------
 src/pq/test_pq.c                                   |    2 +-
 src/testing/test_donau_api.c                       |   42 +-
 src/testing/testing_api_cmd_batch.c                |    4 +-
 src/testing/testing_api_cmd_batch_deposit.c        |   36 +-
 src/testing/testing_api_cmd_batch_withdraw.c       |   38 +-
 src/testing/testing_api_cmd_common.c               |   24 +-
 src/testing/testing_api_cmd_deposit.c              |   30 +-
 src/testing/testing_api_cmd_deposits_get.c         |   16 +-
 src/testing/testing_api_cmd_get_donau.c            |   54 +-
 src/testing/testing_api_cmd_insert_deposit.c       |   22 +-
 .../testing_api_cmd_offline_sign_extensions.c      |    4 +-
 .../testing_api_cmd_offline_sign_global_fees.c     |    4 +-
 src/testing/testing_api_cmd_offline_sign_keys.c    |    4 +-
 src/testing/testing_api_cmd_reserve_close.c        |   12 +-
 src/testing/testing_api_cmd_reserve_get.c          |   12 +-
 src/testing/testing_api_cmd_reserve_history.c      |   32 +-
 src/testing/testing_api_cmd_reserve_open.c         |   18 +-
 src/testing/testing_api_cmd_reserve_status.c       |   18 +-
 src/testing/testing_api_cmd_revoke.c               |    6 +-
 src/testing/testing_api_cmd_revoke_denom_key.c     |   26 +-
 src/testing/testing_api_cmd_revoke_sign_key.c      |   30 +-
 src/testing/testing_api_cmd_stat.c                 |    4 +-
 src/testing/testing_api_cmd_transfer_get.c         |   16 +-
 src/testing/testing_api_cmd_wait.c                 |    4 +-
 src/testing/testing_api_cmd_withdraw.c             |   36 +-
 src/testing/testing_api_misc.c                     |    8 +-
 src/util/donau_signatures.c                        |    2 +-
 148 files changed, 4186 insertions(+), 6846 deletions(-)

diff --cc src/include/donau_service.h
index bf6b3aa,9094ed5..2d73fc1
--- a/src/include/donau_service.h
+++ b/src/include/donau_service.h
@@@ -52,7 -52,36 +52,6 @@@ struct DONAU_SigningPublicKeyAndValidit
  
  };
  
 -
 -/**
 - * @brief Type of public signing keys for verifying blindly signed donation 
receipts.
 - */
 -struct DONAU_DonationUnitPublicKey
 -{
 -
 -  /**
 -   * Type of the public key (RSA or CS).
 -   */
 -  enum GNUNET_CRYPTO_BlindSignatureAlgorithm cipher;
 -
 -  /**
 -   * Details, depending on @e cipher.
 -   */
 -  union
 -  {
 -    /**
 -     * If we use #TALER_DENOMINATION_CS in @a cipher.
 -     */
 -    struct GNUNET_CRYPTO_CsPublicKey cs_public_key;
 -
 -    /**
 -     * If we use #TALER_DENOMINATION_RSA in @a cipher.
 -     */
 -    struct GNUNET_CRYPTO_RsaPublicKey *rsa_public_key;
 -
 -  } details;
 -};
--
  /**
   * @brief Public information about a donau's donation unit signing key
   */
diff --cc src/lib/donau_api_handle.c
index 7dd0282,8f57bd7..7db0423
--- a/src/lib/donau_api_handle.c
+++ b/src/lib/donau_api_handle.c
@@@ -280,14 -280,24 +280,14 @@@ EXITIF_exit
  static enum GNUNET_GenericReturnValue
  decode_keys_json (const json_t *resp_obj,
                    bool check_sig,
-                   struct TALER_DONAU_Keys *key_data,
-                   enum TALER_DONAU_VersionCompatibility *vc)
+                   struct DONAU_Keys *key_data,
+                   enum DONAU_VersionCompatibility *vc)
  {
    struct TALER_DonauSignatureP denominations_sig;
-   struct TALER_DonauPublicKeyP pub;
 -  struct GNUNET_HashCode hash_xor = {0};
+   struct DONAU_DonauPublicKeyP pub;
 -  const json_t *wblwk = NULL;
 -  const json_t *global_fees;
    const json_t *sign_keys_array;
 -  const json_t *denominations_by_group;
 -  const json_t *auditors_array;
 -  const json_t *recoup_array = NULL;
 -  const json_t *manifests = NULL;
 -  bool no_extensions = false;
 +  const json_t *donation_units_by_group;
    bool no_signature = false;
 -  const json_t *accounts;
 -  const json_t *fees;
 -  const json_t *wads;
  
    if (JSON_OBJECT != json_typeof (resp_obj))
    {
@@@ -1455,22 -1474,92 +1455,82 @@@ add_grp (void *cls
  }
  
  
+ /**
+  * Convert array of account restrictions @a ars to JSON.
+  *
+  * @param ar_len length of @a ars
+  * @param ars account restrictions to convert
+  * @return JSON representation
+  */
+ static json_t *
+ ar_to_json (unsigned int ar_len,
 -            const struct DONAU_AccountRestriction ars[static ar_len])
++            const struct TALER_DONAU_AccountRestriction ars[static ar_len])
+ {
+   json_t *rval;
+ 
+   rval = json_array ();
+   GNUNET_assert (NULL != rval);
+   for (unsigned int i = 0; i<ar_len; i++)
+   {
 -    const struct DONAU_AccountRestriction *ar = &ars[i];
++    const struct TALER_DONAU_AccountRestriction *ar = &ars[i];
+ 
+     switch (ar->type)
+     {
 -    case DONAU_AR_INVALID:
++    case TALER_DONAU_AR_INVALID:
+       GNUNET_break (0);
+       json_decref (rval);
+       return NULL;
 -    case DONAU_AR_DENY:
++    case TALER_DONAU_AR_DENY:
+       GNUNET_assert (
+         0 ==
+         json_array_append_new (
+           rval,
+           GNUNET_JSON_PACK (
+             GNUNET_JSON_pack_string ("type",
+                                      "deny"))));
+       break;
 -    case DONAU_AR_REGEX:
++    case TALER_DONAU_AR_REGEX:
+       GNUNET_assert (
+         0 ==
+         json_array_append_new (
+           rval,
+           GNUNET_JSON_PACK (
+             GNUNET_JSON_pack_string (
+               "type",
+               "regex"),
+             GNUNET_JSON_pack_string (
+               "regex",
+               ar->details.regex.posix_egrep),
+             GNUNET_JSON_pack_string (
+               "human_hint",
+               ar->details.regex.human_hint),
+             GNUNET_JSON_pack_object_incref (
+               "human_hint_i18n",
+               (json_t *) ar->details.regex.human_hint_i18n)
+             )));
+       break;
+     }
+   }
+   return rval;
+ }
+ 
+ 
  json_t *
- TALER_DONAU_keys_to_json (const struct TALER_DONAU_Keys *kd)
+ DONAU_keys_to_json (const struct DONAU_Keys *kd)
  {
 -  struct GNUNET_TIME_Timestamp now;
    json_t *keys;
    json_t *signkeys;
 -  json_t *denominations_by_group;
 -  json_t *auditors;
 -  json_t *recoup;
 -  json_t *wire_fees;
 +  json_t *donation_units;
    json_t *accounts;
 -  json_t *global_fees;
 -  json_t *wblwk = NULL;
  
    now = GNUNET_TIME_timestamp_get ();
    signkeys = json_array ();
    GNUNET_assert (NULL != signkeys);
    for (unsigned int i = 0; i<kd->num_sign_keys; i++)
    {
-     const struct TALER_DONAU_SigningPublicKeyAndValidity *sk = 
&kd->sign_keys[i];
 -    const struct DONAU_SigningPublicKey *sk = &kd->sign_keys[i];
++    const struct TALER_DONAU_SigningPublicKey *sk = &kd->sign_keys[i];
      json_t *signkey;
  
 -    if (GNUNET_TIME_timestamp_cmp (now,
 -                                   >,
 -                                   sk->valid_until))
 -      continue; /* skip keys that have expired */
      signkey = GNUNET_JSON_PACK (
        GNUNET_JSON_pack_data_auto ("key",
                                    &sk->key),
@@@ -1489,13 -1584,14 +1549,13 @@@
  
      dbg = GNUNET_CONTAINER_multihashmap_create (128,
                                                  false);
 -    for (unsigned int i = 0; i<kd->num_denom_keys; i++)
 +    for (unsigned int i = 0; i<kd->num_donation_unit_keys; i++)
      {
-       const struct TALER_DonationUnitInformation *dk = 
&kd->donation_unit_keys[i];
-       struct DONAU_DonationUnitGroup meta = {
-         .cipher = dk->key.bsign_pub_key->cipher,
 -      const struct DONAU_DenomPublicKey *dk = &kd->denom_keys[i];
++      const struct TALER_DONAU_DenomPublicKey *dk = &kd->denom_keys[i];
+       struct TALER_DenominationGroup meta = {
+         .cipher = dk->key.cipher,
          .value = dk->value,
 -        .fees = dk->fees,
 -        .age_mask = dk->key.age_mask
 +        .year = dk->year
        };
        struct GNUNET_HashCode key;
        struct GroupData *gd;
@@@ -1567,6 -1665,184 +1627,184 @@@
      GNUNET_CONTAINER_multihashmap_destroy (dbg);
    }
  
+   auditors = json_array ();
+   GNUNET_assert (NULL != auditors);
+   for (unsigned int i = 0; i<kd->num_auditors; i++)
+   {
 -    const struct DONAU_AuditorInformation *ai = &kd->auditors[i];
++    const struct TALER_DONAU_AuditorInformation *ai = &kd->auditors[i];
+     json_t *a;
+     json_t *adenoms;
+ 
+     adenoms = json_array ();
+     GNUNET_assert (NULL != adenoms);
+     for (unsigned int j = 0; j<ai->num_denom_keys; j++)
+     {
 -      const struct DONAU_AuditorDenominationInfo *adi =
++      const struct TALER_DONAU_AuditorDenominationInfo *adi =
+         &ai->denom_keys[j];
 -      const struct DONAU_DenomPublicKey *dk =
++      const struct TALER_DONAU_DenomPublicKey *dk =
+         &kd->denom_keys[adi->denom_key_offset];
+       json_t *k;
+ 
+       GNUNET_assert (adi->denom_key_offset < kd->num_denom_keys);
+       if (GNUNET_TIME_timestamp_cmp (now,
+                                      >,
+                                      dk->expire_deposit))
+         continue; /* skip auditor signatures for denomination keys that have 
expired */
+       GNUNET_assert (adi->denom_key_offset < kd->num_denom_keys);
+       k = GNUNET_JSON_PACK (
+         GNUNET_JSON_pack_data_auto ("denom_pub_h",
+                                     &dk->h_key),
+         GNUNET_JSON_pack_data_auto ("auditor_sig",
+                                     &adi->auditor_sig));
+       GNUNET_assert (0 ==
+                      json_array_append_new (adenoms,
+                                             k));
+     }
+ 
+     a = GNUNET_JSON_PACK (
+       GNUNET_JSON_pack_data_auto ("auditor_pub",
+                                   &ai->auditor_pub),
+       GNUNET_JSON_pack_string ("auditor_url",
+                                ai->auditor_url),
+       GNUNET_JSON_pack_array_steal ("denomination_keys",
+                                     adenoms));
+     GNUNET_assert (0 ==
+                    json_array_append_new (auditors,
+                                           a));
+   }
+ 
+   global_fees = json_array ();
+   GNUNET_assert (NULL != global_fees);
+   for (unsigned int i = 0; i<kd->num_global_fees; i++)
+   {
 -    const struct DONAU_GlobalFee *gf
++    const struct TALER_DONAU_GlobalFee *gf
+       = &kd->global_fees[i];
+ 
+     if (GNUNET_TIME_absolute_is_past (gf->end_date.abs_time))
+       continue;
+     GNUNET_assert (
+       0 ==
+       json_array_append_new (
+         global_fees,
+         GNUNET_JSON_PACK (
+           GNUNET_JSON_pack_timestamp ("start_date",
+                                       gf->start_date),
+           GNUNET_JSON_pack_timestamp ("end_date",
+                                       gf->end_date),
+           TALER_JSON_PACK_GLOBAL_FEES (&gf->fees),
+           GNUNET_JSON_pack_time_rel ("history_expiration",
+                                      gf->history_expiration),
+           GNUNET_JSON_pack_time_rel ("purse_timeout",
+                                      gf->purse_timeout),
+           GNUNET_JSON_pack_uint64 ("purse_account_limit",
+                                    gf->purse_account_limit),
+           GNUNET_JSON_pack_data_auto ("master_sig",
+                                       &gf->master_sig))));
+   }
+ 
+   accounts = json_array ();
+   GNUNET_assert (NULL != accounts);
+   for (unsigned int i = 0; i<kd->accounts_len; i++)
+   {
 -    const struct DONAU_WireAccount *acc
++    const struct TALER_DONAU_WireAccount *acc
+       = &kd->accounts[i];
+     json_t *credit_restrictions;
+     json_t *debit_restrictions;
+ 
+     credit_restrictions
+       = ar_to_json (acc->credit_restrictions_length,
+                     acc->credit_restrictions);
+     GNUNET_assert (NULL != credit_restrictions);
+     debit_restrictions
+       = ar_to_json (acc->debit_restrictions_length,
+                     acc->debit_restrictions);
+     GNUNET_assert (NULL != debit_restrictions);
+     GNUNET_assert (
+       0 ==
+       json_array_append_new (
+         accounts,
+         GNUNET_JSON_PACK (
+           GNUNET_JSON_pack_string ("payto_uri",
+                                    acc->payto_uri),
+           GNUNET_JSON_pack_allow_null (
+             GNUNET_JSON_pack_string ("conversion_url",
+                                      acc->conversion_url)),
+           GNUNET_JSON_pack_array_steal ("debit_restrictions",
+                                         debit_restrictions),
+           GNUNET_JSON_pack_array_steal ("credit_restrictions",
+                                         credit_restrictions),
+           GNUNET_JSON_pack_data_auto ("master_sig",
+                                       &acc->master_sig))));
+   }
+   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+               "Serialized %u/%u wire accounts to JSON\n",
+               (unsigned int) json_array_size (accounts),
+               kd->accounts_len);
+ 
+   wire_fees = json_object ();
+   GNUNET_assert (NULL != wire_fees);
+   for (unsigned int i = 0; i<kd->fees_len; i++)
+   {
 -    const struct DONAU_WireFeesByMethod *fbw
++    const struct TALER_DONAU_WireFeesByMethod *fbw
+       = &kd->fees[i];
+     json_t *wf;
+ 
+     wf = json_array ();
+     GNUNET_assert (NULL != wf);
 -    for (struct DONAU_WireAggregateFees *p = fbw->fees_head;
++    for (struct TALER_DONAU_WireAggregateFees *p = fbw->fees_head;
+          NULL != p;
+          p = p->next)
+     {
+       GNUNET_assert (
+         0 ==
+         json_array_append_new (
+           wf,
+           GNUNET_JSON_PACK (
+             TALER_JSON_pack_amount ("wire_fee",
+                                     &p->fees.wire),
+             TALER_JSON_pack_amount ("closing_fee",
+                                     &p->fees.closing),
+             GNUNET_JSON_pack_timestamp ("start_date",
+                                         p->start_date),
+             GNUNET_JSON_pack_timestamp ("end_date",
+                                         p->end_date),
+             GNUNET_JSON_pack_data_auto ("sig",
+                                         &p->master_sig))));
+     }
+     GNUNET_assert (0 ==
+                    json_object_set_new (wire_fees,
+                                         fbw->method,
+                                         wf));
+   }
+ 
+   recoup = json_array ();
+   GNUNET_assert (NULL != recoup);
+   for (unsigned int i = 0; i<kd->num_denom_keys; i++)
+   {
 -    const struct DONAU_DenomPublicKey *dk
++    const struct TALER_DONAU_DenomPublicKey *dk
+       = &kd->denom_keys[i];
+     if (! dk->revoked)
+       continue;
+     GNUNET_assert (0 ==
+                    json_array_append_new (
+                      recoup,
+                      GNUNET_JSON_PACK (
+                        GNUNET_JSON_pack_data_auto ("h_denom_pub",
+                                                    &dk->h_key))));
+   }
+ 
+   wblwk = json_array ();
+   GNUNET_assert (NULL != wblwk);
+   for (unsigned int i = 0; i<kd->wblwk_length; i++)
+   {
+     const struct TALER_Amount *a = &kd->wallet_balance_limit_without_kyc[i];
+ 
+     GNUNET_assert (0 ==
+                    json_array_append_new (
+                      wblwk,
+                      TALER_JSON_from_amount (a)));
+   }
+ 
    keys = GNUNET_JSON_PACK (
      GNUNET_JSON_pack_string ("version",
                               kd->version),

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]