fix exchangedb build errors
This commit is contained in:
parent
9cce35d270
commit
6eed8917c3
@ -116,6 +116,7 @@ libtaler_plugin_exchangedb_postgres_la_SOURCES = \
|
||||
pg_reserves_in_insert.h pg_reserves_in_insert.c \
|
||||
pg_get_withdraw_info.h pg_get_withdraw_info.c \
|
||||
pg_get_age_withdraw_info.c pg_get_age_withdraw_info.h \
|
||||
pg_batch_ensure_coin_known.h pg_batch_ensure_coin_known.c \
|
||||
pg_do_batch_withdraw.h pg_do_batch_withdraw.c \
|
||||
pg_get_policy_details.h pg_get_policy_details.c \
|
||||
pg_persist_policy_details.h pg_persist_policy_details.c \
|
||||
|
@ -39,4 +39,5 @@ TEH_PG_abort_shard (void *cls,
|
||||
const char *job_name,
|
||||
uint64_t start_row,
|
||||
uint64_t end_row);
|
||||
|
||||
#endif
|
||||
|
@ -86,4 +86,3 @@ TEH_PG_add_denomination_key (
|
||||
"denomination_insert",
|
||||
iparams);
|
||||
}
|
||||
|
||||
|
@ -26,14 +26,10 @@
|
||||
#include "pg_helper.h"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static enum TALER_EXCHANGEDB_CoinKnownStatus
|
||||
insert1 (struct PosgresClosure *pg,
|
||||
const struct TALER_CoinPublicInfo *coin[1],
|
||||
const struct TALER_EXCHANGEDB_CoinInfo *result[1])
|
||||
static enum GNUNET_DB_QueryStatus
|
||||
insert1 (struct PostgresClosure *pg,
|
||||
const struct TALER_CoinPublicInfo coin[1],
|
||||
struct TALER_EXCHANGEDB_CoinInfo result[1])
|
||||
{
|
||||
enum GNUNET_DB_QueryStatus qs;
|
||||
bool is_denom_pub_hash_null = false;
|
||||
@ -57,16 +53,16 @@ insert1 (struct PosgresClosure *pg,
|
||||
};
|
||||
struct GNUNET_PQ_ResultSpec rs[] = {
|
||||
GNUNET_PQ_result_spec_bool ("existed",
|
||||
result[0].existed),
|
||||
&result[0].existed),
|
||||
GNUNET_PQ_result_spec_uint64 ("known_coin_id",
|
||||
result[0].known_coin_id),
|
||||
&result[0].known_coin_id),
|
||||
GNUNET_PQ_result_spec_allow_null (
|
||||
GNUNET_PQ_result_spec_auto_from_type ("denom_pub_hash",
|
||||
result[0].denom_hash),
|
||||
&result[0].denom_hash),
|
||||
&is_denom_pub_hash_null),
|
||||
GNUNET_PQ_result_spec_allow_null (
|
||||
GNUNET_PQ_result_spec_auto_from_type ("age_commitment_hash",
|
||||
result[0].h_age_commitment),
|
||||
&result[0].h_age_commitment),
|
||||
&is_age_hash_null),
|
||||
GNUNET_PQ_result_spec_end
|
||||
};
|
||||
@ -79,47 +75,47 @@ insert1 (struct PosgresClosure *pg,
|
||||
{
|
||||
case GNUNET_DB_STATUS_HARD_ERROR:
|
||||
GNUNET_break (0);
|
||||
return TALER_EXCHANGEDB_CKS_HARD_FAIL;
|
||||
return qs;
|
||||
case GNUNET_DB_STATUS_SOFT_ERROR:
|
||||
return TALER_EXCHANGEDB_CKS_SOFT_FAIL;
|
||||
return qs;
|
||||
case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS:
|
||||
GNUNET_break (0); /* should be impossible */
|
||||
return TALER_EXCHANGEDB_CKS_HARD_FAIL;
|
||||
return GNUNET_DB_STATUS_HARD_ERROR;
|
||||
case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT:
|
||||
if (! existed)
|
||||
return TALER_EXCHANGEDB_CKS_ADDED;
|
||||
break; /* continued below */
|
||||
}
|
||||
|
||||
if ( (! is_denom_pub_hash_null) &&
|
||||
(0 != GNUNET_memcmp (&denom_hash->hash,
|
||||
&coin->denom_pub_hash.hash)) )
|
||||
(0 != GNUNET_memcmp (&result[0].denom_hash,
|
||||
&coin->denom_pub_hash)) )
|
||||
{
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_DENOM_CONFLICT;
|
||||
result[0].denom_conflict = true;
|
||||
}
|
||||
|
||||
if ( (! is_age_hash_null) &&
|
||||
(0 != GNUNET_memcmp (h_age_commitment,
|
||||
(0 != GNUNET_memcmp (&result[0].h_age_commitment,
|
||||
&coin->h_age_commitment)) )
|
||||
{
|
||||
GNUNET_break (GNUNET_is_zero (h_age_commitment));
|
||||
GNUNET_break (GNUNET_is_zero (&result[0].h_age_commitment));
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_AGE_CONFLICT;
|
||||
result[0].age_conflict = true;
|
||||
}
|
||||
return TALER_EXCHANGEDB_CKS_PRESENT;
|
||||
return qs;
|
||||
}
|
||||
|
||||
static enum TALER_EXCHANGEDB_CoinKnownStatus
|
||||
insert2 (struct PosgresClosure *pg,
|
||||
const struct TALER_CoinPublicInfo *coin[2],
|
||||
const struct TALER_EXCHANGEDB_CoinInfo *result[2])
|
||||
|
||||
static enum GNUNET_DB_QueryStatus
|
||||
insert2 (struct PostgresClosure *pg,
|
||||
const struct TALER_CoinPublicInfo coin[2],
|
||||
struct TALER_EXCHANGEDB_CoinInfo result[2])
|
||||
{
|
||||
enum GNUNET_DB_QueryStatus qs;
|
||||
bool is_denom_pub_hash_null = false;
|
||||
bool is_age_hash_null = false;
|
||||
bool is_denom_pub_hash_null2 = false;
|
||||
bool is_age_hash_null2 = false;
|
||||
|
||||
PREPARE (pg,
|
||||
"batch2_known_coin",
|
||||
"SELECT"
|
||||
@ -148,21 +144,21 @@ insert2 (struct PosgresClosure *pg,
|
||||
};
|
||||
struct GNUNET_PQ_ResultSpec rs[] = {
|
||||
GNUNET_PQ_result_spec_bool ("existed",
|
||||
result[0].existed),
|
||||
&result[0].existed),
|
||||
GNUNET_PQ_result_spec_uint64 ("known_coin_id",
|
||||
result[0].known_coin_id),
|
||||
&result[0].known_coin_id),
|
||||
GNUNET_PQ_result_spec_allow_null (
|
||||
GNUNET_PQ_result_spec_auto_from_type ("denom_pub_hash",
|
||||
result[0].denom_hash),
|
||||
&result[0].denom_hash),
|
||||
&is_denom_pub_hash_null),
|
||||
GNUNET_PQ_result_spec_allow_null (
|
||||
GNUNET_PQ_result_spec_auto_from_type ("age_commitment_hash",
|
||||
result[0].h_age_commitment[0]),
|
||||
&result[0].h_age_commitment),
|
||||
&is_age_hash_null),
|
||||
GNUNET_PQ_result_spec_bool ("existed2",
|
||||
result[1].existed),
|
||||
&result[1].existed),
|
||||
GNUNET_PQ_result_spec_uint64 ("known_coin_id2",
|
||||
result[1].known_coin_id),
|
||||
&result[1].known_coin_id),
|
||||
GNUNET_PQ_result_spec_allow_null (
|
||||
GNUNET_PQ_result_spec_auto_from_type ("denom_pub_hash2",
|
||||
&result[1].denom_hash),
|
||||
@ -182,57 +178,56 @@ insert2 (struct PosgresClosure *pg,
|
||||
{
|
||||
case GNUNET_DB_STATUS_HARD_ERROR:
|
||||
GNUNET_break (0);
|
||||
return TALER_EXCHANGEDB_CKS_HARD_FAIL;
|
||||
return qs;
|
||||
case GNUNET_DB_STATUS_SOFT_ERROR:
|
||||
return TALER_EXCHANGEDB_CKS_SOFT_FAIL;
|
||||
return qs;
|
||||
case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS:
|
||||
GNUNET_break (0); /* should be impossible */
|
||||
return TALER_EXCHANGEDB_CKS_HARD_FAIL;
|
||||
return GNUNET_DB_STATUS_HARD_ERROR;
|
||||
case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT:
|
||||
if (! existed)
|
||||
return TALER_EXCHANGEDB_CKS_ADDED;
|
||||
break; /* continued below */
|
||||
}
|
||||
|
||||
if ( (! is_denom_pub_hash_null) &&
|
||||
(0 != GNUNET_memcmp (&denom_hash[0].hash,
|
||||
&coin[0].denom_pub_hash.hash)) )
|
||||
(0 != GNUNET_memcmp (&result[0].denom_hash,
|
||||
&coin[0].denom_pub_hash)) )
|
||||
{
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_DENOM_CONFLICT;
|
||||
result[0].denom_conflict = true;
|
||||
}
|
||||
|
||||
if ( (! is_age_hash_null) &&
|
||||
(0 != GNUNET_memcmp (h_age_commitment[0],
|
||||
(0 != GNUNET_memcmp (&result[0].h_age_commitment,
|
||||
&coin[0].h_age_commitment)) )
|
||||
{
|
||||
GNUNET_break (GNUNET_is_zero (h_age_commitment[0]));
|
||||
GNUNET_break (GNUNET_is_zero (&result[0].h_age_commitment));
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_AGE_CONFLICT;
|
||||
result[0].age_conflict = true;
|
||||
}
|
||||
if ( (! is_denom_pub_hash_null2) &&
|
||||
(0 != GNUNET_memcmp (&denom_hash[1].hash,
|
||||
&coin[1].denom_pub_hash.hash)) )
|
||||
(0 != GNUNET_memcmp (&result[1].denom_hash,
|
||||
&coin[1].denom_pub_hash)) )
|
||||
{
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_DENOM_CONFLICT;
|
||||
result[1].denom_conflict = true;
|
||||
}
|
||||
|
||||
if ( (! is_age_hash_null) &&
|
||||
(0 != GNUNET_memcmp (h_age_commitment[1],
|
||||
(0 != GNUNET_memcmp (&result[1].h_age_commitment,
|
||||
&coin[1].h_age_commitment)) )
|
||||
{
|
||||
GNUNET_break (GNUNET_is_zero (h_age_commitment[1]));
|
||||
GNUNET_break (GNUNET_is_zero (&result[1].h_age_commitment));
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_AGE_CONFLICT;
|
||||
result[1].age_conflict = true;
|
||||
}
|
||||
return TALER_EXCHANGEDB_CKS_PRESENT;
|
||||
return qs;
|
||||
}
|
||||
|
||||
static enum TALER_EXCHANGEDB_CoinKnownStatus
|
||||
insert4 (struct PosgresClosure *pg,
|
||||
const struct TALER_CoinPublicInfo *coin[4],
|
||||
const struct TALER_EXCHANGEDB_CoinInfo *result[4])
|
||||
|
||||
static enum GNUNET_DB_QueryStatus
|
||||
insert4 (struct PostgresClosure *pg,
|
||||
const struct TALER_CoinPublicInfo coin[4],
|
||||
struct TALER_EXCHANGEDB_CoinInfo result[4])
|
||||
{
|
||||
enum GNUNET_DB_QueryStatus qs;
|
||||
bool is_denom_pub_hash_null = false;
|
||||
@ -289,52 +284,52 @@ insert4 (struct PosgresClosure *pg,
|
||||
};
|
||||
struct GNUNET_PQ_ResultSpec rs[] = {
|
||||
GNUNET_PQ_result_spec_bool ("existed",
|
||||
result[0].existed),
|
||||
&result[0].existed),
|
||||
GNUNET_PQ_result_spec_uint64 ("known_coin_id",
|
||||
result[0].known_coin_id),
|
||||
&result[0].known_coin_id),
|
||||
GNUNET_PQ_result_spec_allow_null (
|
||||
GNUNET_PQ_result_spec_auto_from_type ("denom_pub_hash",
|
||||
result[0].denom_hash),
|
||||
&result[0].denom_hash),
|
||||
&is_denom_pub_hash_null),
|
||||
GNUNET_PQ_result_spec_allow_null (
|
||||
GNUNET_PQ_result_spec_auto_from_type ("age_commitment_hash",
|
||||
result[0].h_age_commitment),
|
||||
&result[0].h_age_commitment),
|
||||
&is_age_hash_null),
|
||||
GNUNET_PQ_result_spec_bool ("existed2",
|
||||
result[1].existed),
|
||||
&result[1].existed),
|
||||
GNUNET_PQ_result_spec_uint64 ("known_coin_id2",
|
||||
result[1].known_coin_id),
|
||||
&result[1].known_coin_id),
|
||||
GNUNET_PQ_result_spec_allow_null (
|
||||
GNUNET_PQ_result_spec_auto_from_type ("denom_pub_hash2",
|
||||
result[1].denom_hash),
|
||||
&result[1].denom_hash),
|
||||
&is_denom_pub_hash_null2),
|
||||
GNUNET_PQ_result_spec_allow_null (
|
||||
GNUNET_PQ_result_spec_auto_from_type ("age_commitment_hash2",
|
||||
result[1].h_age_commitment),
|
||||
&result[1].h_age_commitment),
|
||||
&is_age_hash_null2),
|
||||
GNUNET_PQ_result_spec_bool ("existed3",
|
||||
result[2].existed),
|
||||
&result[2].existed),
|
||||
GNUNET_PQ_result_spec_uint64 ("known_coin_id3",
|
||||
result[2].known_coin_id),
|
||||
&result[2].known_coin_id),
|
||||
GNUNET_PQ_result_spec_allow_null (
|
||||
GNUNET_PQ_result_spec_auto_from_type ("denom_pub_hash3",
|
||||
result[2].denom_hash),
|
||||
&result[2].denom_hash),
|
||||
&is_denom_pub_hash_null3),
|
||||
GNUNET_PQ_result_spec_allow_null (
|
||||
GNUNET_PQ_result_spec_auto_from_type ("age_commitment_hash3",
|
||||
result[2].h_age_commitment),
|
||||
&result[2].h_age_commitment),
|
||||
&is_age_hash_null3),
|
||||
GNUNET_PQ_result_spec_bool ("existed4",
|
||||
result[3].existed),
|
||||
&result[3].existed),
|
||||
GNUNET_PQ_result_spec_uint64 ("known_coin_id4",
|
||||
result[3].known_coin_id),
|
||||
&result[3].known_coin_id),
|
||||
GNUNET_PQ_result_spec_allow_null (
|
||||
GNUNET_PQ_result_spec_auto_from_type ("denom_pub_hash4",
|
||||
result[3].denom_hash),
|
||||
&result[3].denom_hash),
|
||||
&is_denom_pub_hash_null4),
|
||||
GNUNET_PQ_result_spec_allow_null (
|
||||
GNUNET_PQ_result_spec_auto_from_type ("age_commitment_hash4",
|
||||
result[3].h_age_commitment),
|
||||
&result[3].h_age_commitment),
|
||||
&is_age_hash_null4),
|
||||
GNUNET_PQ_result_spec_end
|
||||
};
|
||||
@ -347,113 +342,105 @@ insert4 (struct PosgresClosure *pg,
|
||||
{
|
||||
case GNUNET_DB_STATUS_HARD_ERROR:
|
||||
GNUNET_break (0);
|
||||
return TALER_EXCHANGEDB_CKS_HARD_FAIL;
|
||||
return qs;
|
||||
case GNUNET_DB_STATUS_SOFT_ERROR:
|
||||
return TALER_EXCHANGEDB_CKS_SOFT_FAIL;
|
||||
return qs;
|
||||
case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS:
|
||||
GNUNET_break (0); /* should be impossible */
|
||||
return TALER_EXCHANGEDB_CKS_HARD_FAIL;
|
||||
return GNUNET_DB_STATUS_HARD_ERROR;
|
||||
case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT:
|
||||
if (! existed)
|
||||
return TALER_EXCHANGEDB_CKS_ADDED;
|
||||
break; /* continued below */
|
||||
}
|
||||
|
||||
if ( (! is_denom_pub_hash_null) &&
|
||||
(0 != GNUNET_memcmp (result[0].denom_hash.hash,
|
||||
&coin[0].denom_pub_hash.hash)) )
|
||||
(0 != GNUNET_memcmp (&result[0].denom_hash,
|
||||
&coin[0].denom_pub_hash)) )
|
||||
{
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_DENOM_CONFLICT;
|
||||
result[0].denom_conflict = true;
|
||||
}
|
||||
if ( (! is_age_hash_null) &&
|
||||
(0 != GNUNET_memcmp (h_age_commitment[0],
|
||||
(0 != GNUNET_memcmp (&result[0].h_age_commitment,
|
||||
&coin[0].h_age_commitment)) )
|
||||
{
|
||||
GNUNET_break (GNUNET_is_zero (h_age_commitment[0]));
|
||||
GNUNET_break (GNUNET_is_zero (&result[0].h_age_commitment));
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_AGE_CONFLICT;
|
||||
result[0].age_conflict = true;
|
||||
}
|
||||
|
||||
if ( (! is_denom_pub_hash_null2) &&
|
||||
(0 != GNUNET_memcmp (&denom_hash[1].hash,
|
||||
&coin[1].denom_pub_hash.hash)) )
|
||||
(0 != GNUNET_memcmp (&result[1].denom_hash,
|
||||
&coin[1].denom_pub_hash)) )
|
||||
{
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_DENOM_CONFLICT;
|
||||
result[1].denom_conflict = true;
|
||||
}
|
||||
if ( (! is_age_hash_null2) &&
|
||||
(0 != GNUNET_memcmp (h_age_commitment[1],
|
||||
(0 != GNUNET_memcmp (&result[1].h_age_commitment,
|
||||
&coin[1].h_age_commitment)) )
|
||||
{
|
||||
GNUNET_break (GNUNET_is_zero (h_age_commitment[1]));
|
||||
GNUNET_break (GNUNET_is_zero (&result[1].h_age_commitment));
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_AGE_CONFLICT;
|
||||
result[1].age_conflict = true;
|
||||
}
|
||||
|
||||
if ( (! is_denom_pub_hash_null3) &&
|
||||
(0 != GNUNET_memcmp (&denom_hash[2].hash,
|
||||
&coin[2].denom_pub_hash.hash)) )
|
||||
(0 != GNUNET_memcmp (&result[2].denom_hash,
|
||||
&coin[2].denom_pub_hash)) )
|
||||
{
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_DENOM_CONFLICT;
|
||||
result[2].denom_conflict = true;
|
||||
}
|
||||
if ( (! is_age_hash_null3) &&
|
||||
(0 != GNUNET_memcmp (h_age_commitment[2],
|
||||
(0 != GNUNET_memcmp (&result[2].h_age_commitment,
|
||||
&coin[2].h_age_commitment)) )
|
||||
{
|
||||
GNUNET_break (GNUNET_is_zero (h_age_commitment[2]));
|
||||
GNUNET_break (GNUNET_is_zero (&result[2].h_age_commitment));
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_AGE_CONFLICT;
|
||||
result[2].age_conflict = true;
|
||||
}
|
||||
|
||||
if ( (! is_denom_pub_hash_null4) &&
|
||||
(0 != GNUNET_memcmp (&denom_hash[3].hash,
|
||||
&coin[3].denom_pub_hash.hash)) )
|
||||
(0 != GNUNET_memcmp (&result[3].denom_hash,
|
||||
&coin[3].denom_pub_hash)) )
|
||||
{
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_DENOM_CONFLICT;
|
||||
result[3].denom_conflict = true;
|
||||
}
|
||||
if ( (! is_age_hash_null4) &&
|
||||
(0 != GNUNET_memcmp (h_age_commitment[3],
|
||||
(0 != GNUNET_memcmp (&result[3].h_age_commitment,
|
||||
&coin[3].h_age_commitment)) )
|
||||
{
|
||||
GNUNET_break (GNUNET_is_zero (h_age_commitment[3]));
|
||||
GNUNET_break (GNUNET_is_zero (&result[3].h_age_commitment));
|
||||
GNUNET_break_op (0);
|
||||
return TALER_EXCHANGEDB_CKS_AGE_CONFLICT;
|
||||
result[3].age_conflict = true;
|
||||
}
|
||||
|
||||
return TALER_EXCHANGEDB_CKS_PRESENT;
|
||||
return qs;
|
||||
}
|
||||
|
||||
|
||||
|
||||
enum TALER_EXCHANGEDB_CoinKnownStatus
|
||||
TEH_PG_batch_ensure_coin_known (void *cls,
|
||||
const struct
|
||||
TALER_CoinPublicInfo *coin,
|
||||
const struct
|
||||
TALER_EXCHANGEDB_CoinInfo *result,
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_batch_ensure_coin_known (
|
||||
void *cls,
|
||||
const struct TALER_CoinPublicInfo *coin,
|
||||
struct TALER_EXCHANGEDB_CoinInfo *result,
|
||||
unsigned int coin_length,
|
||||
unsigned int batch_size)
|
||||
{
|
||||
struct PostgresClosure *pg = cls;
|
||||
enum TALER_EXCHANGEDB_CoinKnownStatus qs1;
|
||||
enum TALER_EXCHANGEDB_CoinKnownStatus qs2;
|
||||
enum TALER_EXCHANGEDB_CoinKnownStatus qs4;
|
||||
enum GNUNET_DB_QueryStatus qs = 0;
|
||||
unsigned int i = 0;
|
||||
|
||||
while (i < coin_length)
|
||||
while ( (qs >= 0) &&
|
||||
(i < coin_length) )
|
||||
{
|
||||
unsigned int bs = GNUNET_MIN (batch_size,
|
||||
coin_length - i);
|
||||
bs = 1;
|
||||
if (bs >= 4)
|
||||
{
|
||||
qs4 = insert4 (pg,
|
||||
qs = insert4 (pg,
|
||||
&coin[i],
|
||||
&result[i]
|
||||
);
|
||||
&result[i]);
|
||||
i += 4;
|
||||
continue;
|
||||
}
|
||||
@ -461,17 +448,15 @@ TEH_PG_batch_ensure_coin_known (void *cls,
|
||||
{
|
||||
case 3:
|
||||
case 2:
|
||||
qs2 = insert2 (pg,
|
||||
qs = insert2 (pg,
|
||||
&coin[i],
|
||||
&result[i]
|
||||
);
|
||||
&result[i]);
|
||||
i += 2;
|
||||
break;
|
||||
case 1:
|
||||
qs1 = insert1 (pg,
|
||||
qs = insert1 (pg,
|
||||
&coin[i],
|
||||
&result[i]
|
||||
);
|
||||
&result[i]);
|
||||
i += 1;
|
||||
break;
|
||||
case 0:
|
||||
@ -479,5 +464,7 @@ TEH_PG_batch_ensure_coin_known (void *cls,
|
||||
break;
|
||||
}
|
||||
} /* end while */
|
||||
return TALER_EXCHANGEDB_CKS_PRESENT;
|
||||
if (qs < 0)
|
||||
return qs;
|
||||
return i;
|
||||
}
|
||||
|
@ -24,12 +24,14 @@
|
||||
#include "taler_util.h"
|
||||
#include "taler_json_lib.h"
|
||||
#include "taler_exchangedb_plugin.h"
|
||||
enum TALER_EXCHANGEDB_CoinKnownStatus
|
||||
TEH_PG_batch_ensure_coin_known (void *cls,
|
||||
const struct
|
||||
TALER_CoinPublicInfo *coin,
|
||||
const struct
|
||||
TALER_EXCHANGEDB_CoinInfo *result,
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_batch_ensure_coin_known (
|
||||
void *cls,
|
||||
const struct TALER_CoinPublicInfo *coin,
|
||||
struct TALER_EXCHANGEDB_CoinInfo *result,
|
||||
unsigned int coin_length,
|
||||
unsigned int batch_size);
|
||||
|
||||
#endif
|
||||
|
@ -65,7 +65,7 @@ TEH_PG_begin_revolving_shard (void *cls,
|
||||
GNUNET_PQ_result_spec_end
|
||||
};
|
||||
/* Used in #postgres_begin_revolving_shard() */
|
||||
PREPARE(pg,
|
||||
PREPARE (pg,
|
||||
"get_last_revolving_shard",
|
||||
"SELECT"
|
||||
" end_row"
|
||||
|
@ -45,4 +45,5 @@ TEH_PG_begin_revolving_shard (void *cls,
|
||||
uint32_t shard_limit,
|
||||
uint32_t *start_row,
|
||||
uint32_t *end_row);
|
||||
|
||||
#endif
|
||||
|
@ -39,4 +39,5 @@ TEH_PG_complete_shard (void *cls,
|
||||
const char *job_name,
|
||||
uint64_t start_row,
|
||||
uint64_t end_row);
|
||||
|
||||
#endif
|
||||
|
@ -48,5 +48,3 @@ TEH_PG_delete_aggregation_transient (
|
||||
"delete_aggregation_transient",
|
||||
params);
|
||||
}
|
||||
|
||||
|
||||
|
@ -39,4 +39,3 @@ TEH_PG_delete_shard_locks (void *cls)
|
||||
return GNUNET_PQ_exec_statements (pg->conn,
|
||||
es);
|
||||
}
|
||||
|
||||
|
@ -75,4 +75,3 @@ TEH_PG_do_batch_withdraw (
|
||||
params,
|
||||
rs);
|
||||
}
|
||||
|
||||
|
@ -70,7 +70,6 @@ TEH_PG_do_recoup (
|
||||
};
|
||||
|
||||
|
||||
|
||||
PREPARE (pg,
|
||||
"call_recoup",
|
||||
"SELECT "
|
||||
|
@ -53,4 +53,5 @@ TEH_PG_do_recoup_refresh (
|
||||
struct GNUNET_TIME_Timestamp *recoup_timestamp,
|
||||
bool *recoup_ok,
|
||||
bool *internal_failure);
|
||||
|
||||
#endif
|
||||
|
@ -82,5 +82,3 @@ TEH_PG_do_withdraw (
|
||||
params,
|
||||
rs);
|
||||
}
|
||||
|
||||
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "pg_helper.h"
|
||||
|
||||
|
||||
|
||||
void
|
||||
TEH_PG_event_listen_cancel (void *cls,
|
||||
struct GNUNET_DB_EventHandler *eh)
|
||||
|
@ -35,4 +35,5 @@
|
||||
*/
|
||||
enum GNUNET_GenericReturnValue
|
||||
TEH_PG_gc (void *cls);
|
||||
|
||||
#endif
|
||||
|
@ -67,5 +67,3 @@ TEH_PG_get_coin_denomination (
|
||||
params,
|
||||
rs);
|
||||
}
|
||||
|
||||
|
||||
|
@ -41,4 +41,5 @@ TEH_PG_get_denomination_revocation (
|
||||
const struct TALER_DenominationHashP *denom_pub_hash,
|
||||
struct TALER_MasterSignatureP *master_sig,
|
||||
uint64_t *rowid);
|
||||
|
||||
#endif
|
||||
|
@ -38,4 +38,5 @@ enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_get_extension_manifest (void *cls,
|
||||
const char *extension_name,
|
||||
char **manifest);
|
||||
|
||||
#endif
|
||||
|
@ -66,7 +66,7 @@ TEH_PG_get_global_fee (void *cls,
|
||||
|
||||
|
||||
/* Used in #postgres_get_global_fee() */
|
||||
PREPARE(pg,
|
||||
PREPARE (pg,
|
||||
"get_global_fee",
|
||||
"SELECT "
|
||||
" start_date"
|
||||
|
@ -121,7 +121,6 @@ global_fees_cb (void *cls,
|
||||
}
|
||||
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_get_global_fees (void *cls,
|
||||
TALER_EXCHANGEDB_GlobalFeeCallback cb,
|
||||
@ -169,7 +168,3 @@ TEH_PG_get_global_fees (void *cls,
|
||||
&global_fees_cb,
|
||||
&gctx);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -37,4 +37,5 @@ enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_get_global_fees (void *cls,
|
||||
TALER_EXCHANGEDB_GlobalFeeCallback cb,
|
||||
void *cb_cls);
|
||||
|
||||
#endif
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "pg_helper.h"
|
||||
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_get_old_coin_by_h_blind (
|
||||
void *cls,
|
||||
|
@ -41,4 +41,5 @@ TEH_PG_get_old_coin_by_h_blind (
|
||||
const struct TALER_BlindedCoinHashP *h_blind_ev,
|
||||
struct TALER_CoinSpendPublicKeyP *old_coin_pub,
|
||||
uint64_t *rrc_serial);
|
||||
|
||||
#endif
|
||||
|
@ -57,7 +57,6 @@ TEH_PG_get_policy_details (
|
||||
};
|
||||
|
||||
|
||||
|
||||
return GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
|
||||
"get_policy_details",
|
||||
params,
|
||||
|
@ -80,4 +80,3 @@ TEH_PG_get_purse_request (
|
||||
params,
|
||||
rs);
|
||||
}
|
||||
|
||||
|
@ -133,9 +133,6 @@ add_revealed_coins (void *cls,
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_get_refresh_reveal (void *cls,
|
||||
const struct TALER_RefreshCommitmentP *rc,
|
||||
|
@ -92,8 +92,6 @@ get_wire_accounts_cb (void *cls,
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_get_wire_accounts (void *cls,
|
||||
TALER_EXCHANGEDB_WireAccountCallback cb,
|
||||
|
@ -55,9 +55,8 @@ TEH_PG_get_wire_fee (void *cls,
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* Used in #postgres_get_wire_fee() */
|
||||
PREPARE(pg,
|
||||
PREPARE (pg,
|
||||
"get_wire_fee",
|
||||
"SELECT "
|
||||
" start_date"
|
||||
|
@ -51,4 +51,3 @@ TEH_PG_insert_aggregation_tracking (
|
||||
"insert_aggregation_tracking",
|
||||
params);
|
||||
}
|
||||
|
||||
|
@ -40,4 +40,3 @@ TEH_PG_insert_aggregation_tracking (
|
||||
unsigned long long deposit_serial_id);
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -41,4 +41,5 @@ TEH_PG_insert_kyc_requirement_for_account (
|
||||
const char *provider_section,
|
||||
const struct TALER_PaytoHashP *h_payto,
|
||||
uint64_t *requirement_row);
|
||||
|
||||
#endif
|
||||
|
@ -45,4 +45,5 @@ TEH_PG_insert_kyc_requirement_process (
|
||||
const char *provider_account_id,
|
||||
const char *provider_legitimization_id,
|
||||
uint64_t *process_row);
|
||||
|
||||
#endif
|
||||
|
@ -38,4 +38,5 @@ enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_iterate_active_auditors (void *cls,
|
||||
TALER_EXCHANGEDB_AuditorsCallback cb,
|
||||
void *cb_cls);
|
||||
|
||||
#endif
|
||||
|
@ -41,4 +41,5 @@ TEH_PG_iterate_auditor_denominations (
|
||||
void *cls,
|
||||
TALER_EXCHANGEDB_AuditorDenominationsCallback cb,
|
||||
void *cb_cls);
|
||||
|
||||
#endif
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "pg_helper.h"
|
||||
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_kyc_provider_account_lookup (
|
||||
void *cls,
|
||||
|
@ -44,4 +44,5 @@ TEH_PG_kyc_provider_account_lookup (
|
||||
const char *provider_legitimization_id,
|
||||
struct TALER_PaytoHashP *h_payto,
|
||||
uint64_t *process_row);
|
||||
|
||||
#endif
|
||||
|
@ -48,4 +48,5 @@ TEH_PG_lookup_global_fee_by_time (
|
||||
struct GNUNET_TIME_Relative *purse_timeout,
|
||||
struct GNUNET_TIME_Relative *history_expiration,
|
||||
uint32_t *purse_account_limit);
|
||||
|
||||
#endif
|
||||
|
@ -47,4 +47,5 @@ TEH_PG_lookup_kyc_process_by_account (
|
||||
struct GNUNET_TIME_Absolute *expiration,
|
||||
char **provider_account_id,
|
||||
char **provider_legitimization_id);
|
||||
|
||||
#endif
|
||||
|
@ -62,4 +62,3 @@ TEH_PG_lookup_signing_key (
|
||||
params,
|
||||
rs);
|
||||
}
|
||||
|
||||
|
@ -47,9 +47,3 @@ TEH_PG_profit_drains_set_finished (
|
||||
"drain_profit_set_finished",
|
||||
params);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -779,7 +779,8 @@ TEH_PG_reserves_in_insert (void *cls,
|
||||
&conflicts[i],
|
||||
&reserve_uuid[i],
|
||||
&results[i]);
|
||||
fprintf(stdout, "reserve uuid : %ld c :%d t:%d\n", reserve_uuid[i], conflicts[i], transaction_duplicate[i]);
|
||||
fprintf (stdout, "reserve uuid : %ld c :%d t:%d\n", reserve_uuid[i],
|
||||
conflicts[i], transaction_duplicate[i]);
|
||||
if (qs2<0)
|
||||
{
|
||||
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
|
||||
|
@ -26,8 +26,6 @@
|
||||
#include "pg_helper.h"
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Closure for #get_kyc_amounts_cb().
|
||||
*/
|
||||
@ -112,7 +110,6 @@ get_kyc_amounts_cb (void *cls,
|
||||
}
|
||||
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_select_aggregation_amounts_for_kyc_check (
|
||||
void *cls,
|
||||
|
@ -44,4 +44,5 @@ TEH_PG_select_aggregation_amounts_for_kyc_check (
|
||||
struct GNUNET_TIME_Absolute time_limit,
|
||||
TALER_EXCHANGEDB_KycAmountCallback kac,
|
||||
void *kac_cls);
|
||||
|
||||
#endif
|
||||
|
@ -64,4 +64,3 @@ TEH_PG_select_auditor_denom_sig (
|
||||
params,
|
||||
rs);
|
||||
}
|
||||
|
||||
|
@ -164,7 +164,6 @@ TEH_PG_select_deposits_missing_wire (void *cls,
|
||||
" ORDER BY wire_deadline ASC");
|
||||
|
||||
|
||||
|
||||
qs = GNUNET_PQ_eval_prepared_multi_select (pg->conn,
|
||||
"deposits_get_overdue",
|
||||
params,
|
||||
|
@ -113,8 +113,6 @@ history_request_serial_helper_cb (void *cls,
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_select_history_requests_above_serial_id (
|
||||
void *cls,
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "pg_helper.h"
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Closure for #get_kyc_amounts_cb().
|
||||
*/
|
||||
@ -157,4 +156,3 @@ TEH_PG_select_merge_amounts_for_kyc_check (
|
||||
return GNUNET_DB_STATUS_HARD_ERROR;
|
||||
return qs;
|
||||
}
|
||||
|
||||
|
@ -112,7 +112,6 @@ purse_decision_serial_helper_cb (void *cls,
|
||||
}
|
||||
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_select_purse_decisions_above_serial_id (
|
||||
void *cls,
|
||||
|
@ -43,4 +43,5 @@ TEH_PG_select_purse_decisions_above_serial_id (
|
||||
bool refunded,
|
||||
TALER_EXCHANGEDB_PurseDecisionCallback cb,
|
||||
void *cb_cls);
|
||||
|
||||
#endif
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "pg_helper.h"
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Closure for #recoup_serial_helper_cb().
|
||||
*/
|
||||
@ -137,6 +136,7 @@ recoup_serial_helper_cb (void *cls,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_select_recoup_above_serial_id (
|
||||
void *cls,
|
||||
|
@ -141,7 +141,6 @@ recoup_refresh_serial_helper_cb (void *cls,
|
||||
}
|
||||
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_select_recoup_refresh_above_serial_id (
|
||||
void *cls,
|
||||
|
@ -130,10 +130,6 @@ refreshs_serial_helper_cb (void *cls,
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_select_refreshes_above_serial_id (
|
||||
void *cls,
|
||||
|
@ -44,4 +44,5 @@ TEH_PG_select_refunds_by_coin (
|
||||
const struct TALER_PrivateContractHashP *h_contract,
|
||||
TALER_EXCHANGEDB_RefundCoinCallback cb,
|
||||
void *cb_cls);
|
||||
|
||||
#endif
|
||||
|
@ -113,7 +113,6 @@ wire_out_serial_helper_cb (void *cls,
|
||||
}
|
||||
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_select_wire_out_above_serial_id (
|
||||
void *cls,
|
||||
|
@ -112,6 +112,7 @@ wire_out_serial_helper_cb (void *cls,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_select_wire_out_above_serial_id_by_account (
|
||||
void *cls,
|
||||
|
@ -43,4 +43,5 @@ TEH_PG_select_wire_out_above_serial_id_by_account (
|
||||
uint64_t serial_id,
|
||||
TALER_EXCHANGEDB_WireTransferOutCallback cb,
|
||||
void *cb_cls);
|
||||
|
||||
#endif
|
||||
|
@ -132,7 +132,7 @@ TEH_PG_select_withdraw_amounts_for_kyc_check (
|
||||
};
|
||||
enum GNUNET_DB_QueryStatus qs;
|
||||
/* Used in #postgres_select_withdraw_amounts_for_kyc_check (
|
||||
() */
|
||||
() */
|
||||
PREPARE (pg,
|
||||
"select_kyc_relevant_withdraw_events",
|
||||
"SELECT"
|
||||
|
@ -44,4 +44,5 @@ TEH_PG_select_withdraw_amounts_for_kyc_check (
|
||||
struct GNUNET_TIME_Absolute time_limit,
|
||||
TALER_EXCHANGEDB_KycAmountCallback kac,
|
||||
void *kac_cls);
|
||||
|
||||
#endif
|
||||
|
@ -121,7 +121,6 @@ reserves_out_serial_helper_cb (void *cls,
|
||||
}
|
||||
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_select_withdrawals_above_serial_id (
|
||||
void *cls,
|
||||
|
@ -41,4 +41,5 @@ TEH_PG_select_withdrawals_above_serial_id (
|
||||
uint64_t serial_id,
|
||||
TALER_EXCHANGEDB_WithdrawCallback cb,
|
||||
void *cb_cls);
|
||||
|
||||
#endif
|
||||
|
@ -50,6 +50,3 @@ TEH_PG_set_purse_balance (
|
||||
"set_purse_balance",
|
||||
params);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_setup_wire_target(
|
||||
TEH_PG_setup_wire_target (
|
||||
struct PostgresClosure *pg,
|
||||
const char *payto_uri,
|
||||
struct TALER_PaytoHashP *h_payto)
|
||||
|
@ -35,7 +35,7 @@
|
||||
* @return transaction status
|
||||
*/
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_setup_wire_target(
|
||||
TEH_PG_setup_wire_target (
|
||||
struct PostgresClosure *pg,
|
||||
const char *payto_uri,
|
||||
struct TALER_PaytoHashP *h_payto);
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "pg_helper.h"
|
||||
|
||||
|
||||
|
||||
enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_update_aggregation_transient (
|
||||
void *cls,
|
||||
|
@ -44,7 +44,7 @@ TEH_PG_update_auditor (void *cls,
|
||||
GNUNET_PQ_query_param_end
|
||||
};
|
||||
/* used in #postgres_update_auditor() */
|
||||
PREPARE(pg,
|
||||
PREPARE (pg,
|
||||
"update_auditor",
|
||||
"UPDATE auditors"
|
||||
" SET"
|
||||
|
@ -42,4 +42,5 @@ TEH_PG_wire_prepare_data_get (void *cls,
|
||||
uint64_t limit,
|
||||
TALER_EXCHANGEDB_WirePreparationIterator cb,
|
||||
void *cb_cls);
|
||||
|
||||
#endif
|
||||
|
@ -39,4 +39,5 @@ TEH_PG_wire_prepare_data_insert (void *cls,
|
||||
const char *type,
|
||||
const char *buf,
|
||||
size_t buf_size);
|
||||
|
||||
#endif
|
||||
|
@ -36,4 +36,5 @@ enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_wire_prepare_data_mark_failed (
|
||||
void *cls,
|
||||
uint64_t rowid);
|
||||
|
||||
#endif
|
||||
|
@ -36,4 +36,5 @@ enum GNUNET_DB_QueryStatus
|
||||
TEH_PG_wire_prepare_data_mark_finished (
|
||||
void *cls,
|
||||
uint64_t rowid);
|
||||
|
||||
#endif
|
||||
|
@ -74,8 +74,8 @@ static void
|
||||
run (void *cls)
|
||||
{
|
||||
static const unsigned int batches[] = {1, 2, 3, 4, 8, 16 };
|
||||
struct GNUNET_TIME_Relative times[sizeof (batches)/sizeof(*batches)];
|
||||
unsigned long long sqrs[sizeof (batches)/sizeof(*batches)];
|
||||
struct GNUNET_TIME_Relative times[sizeof (batches) / sizeof(*batches)];
|
||||
unsigned long long sqrs[sizeof (batches) / sizeof(*batches)];
|
||||
struct GNUNET_CONFIGURATION_Handle *cfg = cls;
|
||||
const uint32_t num_partitions = 10;
|
||||
|
||||
@ -107,7 +107,7 @@ run (void *cls)
|
||||
const char *sndr = "payto://x-taler-bank/localhost:8080/1";
|
||||
struct TALER_Amount value;
|
||||
unsigned int batch_size = batches[i];
|
||||
unsigned int iterations = 16;//1024*10;
|
||||
unsigned int iterations = 16; // 1024*10;
|
||||
struct TALER_ReservePublicKeyP reserve_pubs[iterations];
|
||||
struct GNUNET_TIME_Absolute now;
|
||||
struct GNUNET_TIME_Timestamp ts;
|
||||
@ -141,7 +141,8 @@ run (void *cls)
|
||||
times[i] = GNUNET_TIME_relative_add (times[i],
|
||||
duration);
|
||||
duration_sq = duration.rel_value_us * duration.rel_value_us;
|
||||
GNUNET_assert (duration_sq / duration.rel_value_us == duration.rel_value_us);
|
||||
GNUNET_assert (duration_sq / duration.rel_value_us ==
|
||||
duration.rel_value_us);
|
||||
GNUNET_assert (sqrs[i] + duration_sq >= sqrs[i]);
|
||||
sqrs[i] += duration_sq;
|
||||
fprintf (stdout,
|
||||
@ -150,7 +151,7 @@ run (void *cls)
|
||||
GNUNET_STRINGS_relative_time_to_string (duration,
|
||||
GNUNET_NO) );
|
||||
|
||||
system ("./test.sh"); //DELETE AFTER TIMER
|
||||
system ("./test.sh"); // DELETE AFTER TIMER
|
||||
}
|
||||
}
|
||||
for (unsigned int i = 0; i< 6; i++)
|
||||
@ -163,11 +164,11 @@ run (void *cls)
|
||||
ROUNDS);
|
||||
avg_dbl = avg.rel_value_us;
|
||||
variance = sqrs[i] - (avg_dbl * avg_dbl * ROUNDS);
|
||||
fprintf(stdout,
|
||||
fprintf (stdout,
|
||||
"Batch[%2u]: %8llu ± %6.0f\n",
|
||||
batches[i],
|
||||
(unsigned long long) avg.rel_value_us,
|
||||
sqrt (variance / (ROUNDS-1)));
|
||||
sqrt (variance / (ROUNDS - 1)));
|
||||
}
|
||||
|
||||
result = 0;
|
||||
|
@ -29,19 +29,17 @@
|
||||
#include "taler_extensions_policy.h"
|
||||
|
||||
|
||||
|
||||
|
||||
struct TALER_EXCHANGEDB_CoinInfo
|
||||
{
|
||||
uint64_t *known_coin_id;
|
||||
struct TALER_DenominationHashP *denom_hash;
|
||||
struct TALER_AgeCommitmentHash *h_age_commitment;
|
||||
bool *existed;
|
||||
uint64_t known_coin_id;
|
||||
struct TALER_DenominationHashP denom_hash;
|
||||
struct TALER_AgeCommitmentHash h_age_commitment;
|
||||
bool existed;
|
||||
bool denom_conflict;
|
||||
bool age_conflict;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Information about a denomination key.
|
||||
*/
|
||||
@ -900,21 +898,6 @@ struct TALER_EXCHANGEDB_DenominationKeyMetaData
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Signature of a function called with information about the exchange's
|
||||
* denomination keys.
|
||||
@ -4055,10 +4038,10 @@ struct TALER_EXCHANGEDB_Plugin
|
||||
struct TALER_DenominationHashP *denom_pub_hash,
|
||||
struct TALER_AgeCommitmentHash *age_hash);
|
||||
|
||||
enum TALER_EXCHANGEDB_CoinKnownStatus
|
||||
enum GNUNET_DB_QueryStatus
|
||||
(*batch_ensure_coin_known)(void *cls,
|
||||
const struct TALER_CoinPublicInfo *coin,
|
||||
const struct
|
||||
struct
|
||||
TALER_EXCHANGEDB_CoinInfo *result,
|
||||
unsigned int coin_length,
|
||||
unsigned int batch_size);
|
||||
|
Loading…
Reference in New Issue
Block a user