making mintdb tests pass again after API refactoring to remove total amount
This commit is contained in:
parent
38378f38d7
commit
d67011e2b5
@ -606,7 +606,6 @@ typedef void
|
|||||||
* @param coin_pub which public key was this payment about
|
* @param coin_pub which public key was this payment about
|
||||||
* @param coin_value amount contributed by this coin in total (with fee)
|
* @param coin_value amount contributed by this coin in total (with fee)
|
||||||
* @param coin_fee applicable fee for this coin
|
* @param coin_fee applicable fee for this coin
|
||||||
* @param transfer_value total amount of the wire transfer
|
|
||||||
*/
|
*/
|
||||||
typedef void
|
typedef void
|
||||||
(*TALER_MINTDB_WireTransferDataCallback)(void *cls,
|
(*TALER_MINTDB_WireTransferDataCallback)(void *cls,
|
||||||
@ -616,8 +615,7 @@ typedef void
|
|||||||
uint64_t transaction_id,
|
uint64_t transaction_id,
|
||||||
const struct TALER_CoinSpendPublicKeyP *coin_pub,
|
const struct TALER_CoinSpendPublicKeyP *coin_pub,
|
||||||
const struct TALER_Amount *coin_value,
|
const struct TALER_Amount *coin_value,
|
||||||
const struct TALER_Amount *coin_fee,
|
const struct TALER_Amount *coin_fee);
|
||||||
const struct TALER_Amount *transfer_value);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1392,8 +1392,7 @@ deposit_wtid_cb (void *cls,
|
|||||||
json_t *json,
|
json_t *json,
|
||||||
const struct TALER_WireTransferIdentifierRawP *wtid,
|
const struct TALER_WireTransferIdentifierRawP *wtid,
|
||||||
struct GNUNET_TIME_Absolute execution_time,
|
struct GNUNET_TIME_Absolute execution_time,
|
||||||
const struct TALER_Amount *coin_contribution,
|
const struct TALER_Amount *coin_contribution)
|
||||||
const struct TALER_Amount *total_amount)
|
|
||||||
{
|
{
|
||||||
struct InterpreterState *is = cls;
|
struct InterpreterState *is = cls;
|
||||||
struct Command *cmd = &is->commands[is->ip];
|
struct Command *cmd = &is->commands[is->ip];
|
||||||
@ -1413,16 +1412,6 @@ deposit_wtid_cb (void *cls,
|
|||||||
{
|
{
|
||||||
case MHD_HTTP_OK:
|
case MHD_HTTP_OK:
|
||||||
cmd->details.deposit_wtid.wtid = *wtid;
|
cmd->details.deposit_wtid.wtid = *wtid;
|
||||||
if (0 != TALER_amount_cmp (total_amount,
|
|
||||||
&cmd->details.deposit_wtid.total_amount_expected))
|
|
||||||
{
|
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
|
||||||
"Total amount missmatch to command %s\n",
|
|
||||||
cmd->label);
|
|
||||||
json_dumpf (json, stderr, 0);
|
|
||||||
fail (is);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -1565,12 +1565,6 @@ struct WtidTransactionContext
|
|||||||
*/
|
*/
|
||||||
struct TALER_Amount total;
|
struct TALER_Amount total;
|
||||||
|
|
||||||
/**
|
|
||||||
* Value we find in the DB for the @e total; only valid if @e is_valid
|
|
||||||
* is #GNUNET_YES.
|
|
||||||
*/
|
|
||||||
struct TALER_Amount db_transaction_value;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Public key of the merchant, only valid if @e is_valid
|
* Public key of the merchant, only valid if @e is_valid
|
||||||
* is #GNUNET_YES.
|
* is #GNUNET_YES.
|
||||||
@ -1612,7 +1606,6 @@ struct WtidTransactionContext
|
|||||||
* @param coin_pub which public key was this payment about
|
* @param coin_pub which public key was this payment about
|
||||||
* @param deposit_value amount contributed by this coin in total
|
* @param deposit_value amount contributed by this coin in total
|
||||||
* @param deposit_fee deposit fee charged by mint for this coin
|
* @param deposit_fee deposit fee charged by mint for this coin
|
||||||
* @param transaction_value total value of the wire transaction
|
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
handle_transaction_data (void *cls,
|
handle_transaction_data (void *cls,
|
||||||
@ -1622,8 +1615,7 @@ handle_transaction_data (void *cls,
|
|||||||
uint64_t transaction_id,
|
uint64_t transaction_id,
|
||||||
const struct TALER_CoinSpendPublicKeyP *coin_pub,
|
const struct TALER_CoinSpendPublicKeyP *coin_pub,
|
||||||
const struct TALER_Amount *deposit_value,
|
const struct TALER_Amount *deposit_value,
|
||||||
const struct TALER_Amount *deposit_fee,
|
const struct TALER_Amount *deposit_fee)
|
||||||
const struct TALER_Amount *transaction_value)
|
|
||||||
{
|
{
|
||||||
struct WtidTransactionContext *ctx = cls;
|
struct WtidTransactionContext *ctx = cls;
|
||||||
struct TALER_Amount delta;
|
struct TALER_Amount delta;
|
||||||
@ -1634,7 +1626,6 @@ handle_transaction_data (void *cls,
|
|||||||
{
|
{
|
||||||
ctx->merchant_pub = *merchant_pub;
|
ctx->merchant_pub = *merchant_pub;
|
||||||
ctx->h_wire = *h_wire;
|
ctx->h_wire = *h_wire;
|
||||||
ctx->db_transaction_value = *transaction_value;
|
|
||||||
ctx->is_valid = GNUNET_YES;
|
ctx->is_valid = GNUNET_YES;
|
||||||
if (GNUNET_OK !=
|
if (GNUNET_OK !=
|
||||||
TALER_amount_subtract (&ctx->total,
|
TALER_amount_subtract (&ctx->total,
|
||||||
@ -1653,9 +1644,7 @@ handle_transaction_data (void *cls,
|
|||||||
sizeof (struct TALER_MerchantPublicKeyP))) ||
|
sizeof (struct TALER_MerchantPublicKeyP))) ||
|
||||||
(0 != memcmp (&ctx->h_wire,
|
(0 != memcmp (&ctx->h_wire,
|
||||||
h_wire,
|
h_wire,
|
||||||
sizeof (struct GNUNET_HashCode))) ||
|
sizeof (struct GNUNET_HashCode))) )
|
||||||
(0 != TALER_amount_cmp (transaction_value,
|
|
||||||
&ctx->db_transaction_value)) )
|
|
||||||
{
|
{
|
||||||
GNUNET_break (0);
|
GNUNET_break (0);
|
||||||
ctx->is_valid = GNUNET_SYSERR;
|
ctx->is_valid = GNUNET_SYSERR;
|
||||||
@ -1741,15 +1730,8 @@ TMH_DB_execute_wire_deposits (struct MHD_Connection *connection,
|
|||||||
return TMH_RESPONSE_reply_arg_unknown (connection,
|
return TMH_RESPONSE_reply_arg_unknown (connection,
|
||||||
"wtid");
|
"wtid");
|
||||||
}
|
}
|
||||||
if (0 != TALER_amount_cmp (&ctx.total,
|
|
||||||
&ctx.db_transaction_value))
|
|
||||||
{
|
|
||||||
/* FIXME: this CAN actually differ, due to rounding
|
|
||||||
down. But we should still check that the values
|
|
||||||
do match after rounding 'total' down! */
|
|
||||||
}
|
|
||||||
return TMH_RESPONSE_reply_wire_deposit_details (connection,
|
return TMH_RESPONSE_reply_wire_deposit_details (connection,
|
||||||
&ctx.db_transaction_value,
|
&ctx.total,
|
||||||
&ctx.merchant_pub,
|
&ctx.merchant_pub,
|
||||||
&ctx.h_wire,
|
&ctx.h_wire,
|
||||||
ctx.deposits);
|
ctx.deposits);
|
||||||
|
@ -3739,7 +3739,7 @@ postgres_get_coin_transactions (void *cls,
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lookup the list of Taler transactions that was aggregated
|
* Lookup the list of Taler transactions that were aggregated
|
||||||
* into a wire transfer by the respective @a wtid.
|
* into a wire transfer by the respective @a wtid.
|
||||||
*
|
*
|
||||||
* @param cls closure
|
* @param cls closure
|
||||||
@ -3793,7 +3793,6 @@ postgres_lookup_wire_transfer (void *cls,
|
|||||||
struct GNUNET_TIME_Absolute exec_time;
|
struct GNUNET_TIME_Absolute exec_time;
|
||||||
struct TALER_Amount coin_amount;
|
struct TALER_Amount coin_amount;
|
||||||
struct TALER_Amount coin_fee;
|
struct TALER_Amount coin_fee;
|
||||||
struct TALER_Amount transfer_amount;
|
|
||||||
struct GNUNET_PQ_ResultSpec rs[] = {
|
struct GNUNET_PQ_ResultSpec rs[] = {
|
||||||
GNUNET_PQ_result_spec_auto_from_type ("h_contract", &h_contract),
|
GNUNET_PQ_result_spec_auto_from_type ("h_contract", &h_contract),
|
||||||
GNUNET_PQ_result_spec_auto_from_type ("h_wire", &h_wire),
|
GNUNET_PQ_result_spec_auto_from_type ("h_wire", &h_wire),
|
||||||
@ -3803,7 +3802,6 @@ postgres_lookup_wire_transfer (void *cls,
|
|||||||
GNUNET_PQ_result_spec_absolute_time ("execution_time", &exec_time),
|
GNUNET_PQ_result_spec_absolute_time ("execution_time", &exec_time),
|
||||||
TALER_PQ_result_spec_amount ("coin_amount", &coin_amount),
|
TALER_PQ_result_spec_amount ("coin_amount", &coin_amount),
|
||||||
TALER_PQ_result_spec_amount ("coin_fee", &coin_fee),
|
TALER_PQ_result_spec_amount ("coin_fee", &coin_fee),
|
||||||
TALER_PQ_result_spec_amount ("transfer_total", &transfer_amount),
|
|
||||||
GNUNET_PQ_result_spec_end
|
GNUNET_PQ_result_spec_end
|
||||||
};
|
};
|
||||||
if (GNUNET_OK != GNUNET_PQ_extract_result (result, rs, i))
|
if (GNUNET_OK != GNUNET_PQ_extract_result (result, rs, i))
|
||||||
@ -3819,8 +3817,7 @@ postgres_lookup_wire_transfer (void *cls,
|
|||||||
transaction_id,
|
transaction_id,
|
||||||
&coin_pub,
|
&coin_pub,
|
||||||
&coin_amount,
|
&coin_amount,
|
||||||
&coin_fee,
|
&coin_fee);
|
||||||
&transfer_amount);
|
|
||||||
}
|
}
|
||||||
PQclear (result);
|
PQclear (result);
|
||||||
return GNUNET_OK;
|
return GNUNET_OK;
|
||||||
|
@ -453,8 +453,7 @@ cb_wt_never (void *cls,
|
|||||||
uint64_t transaction_id,
|
uint64_t transaction_id,
|
||||||
const struct TALER_CoinSpendPublicKeyP *coin_pub,
|
const struct TALER_CoinSpendPublicKeyP *coin_pub,
|
||||||
const struct TALER_Amount *coin_value,
|
const struct TALER_Amount *coin_value,
|
||||||
const struct TALER_Amount *coin_fee,
|
const struct TALER_Amount *coin_fee)
|
||||||
const struct TALER_Amount *transfer_value)
|
|
||||||
{
|
{
|
||||||
GNUNET_assert (0); /* this statement should be unreachable */
|
GNUNET_assert (0); /* this statement should be unreachable */
|
||||||
}
|
}
|
||||||
@ -468,7 +467,6 @@ cb_wtid_never (void *cls,
|
|||||||
const struct TALER_WireTransferIdentifierRawP *wtid,
|
const struct TALER_WireTransferIdentifierRawP *wtid,
|
||||||
const struct TALER_Amount *coin_contribution,
|
const struct TALER_Amount *coin_contribution,
|
||||||
const struct TALER_Amount *coin_fee,
|
const struct TALER_Amount *coin_fee,
|
||||||
const struct TALER_Amount *total_amount,
|
|
||||||
struct GNUNET_TIME_Absolute execution_time)
|
struct GNUNET_TIME_Absolute execution_time)
|
||||||
{
|
{
|
||||||
GNUNET_assert (0);
|
GNUNET_assert (0);
|
||||||
@ -498,8 +496,7 @@ cb_wt_check (void *cls,
|
|||||||
uint64_t transaction_id,
|
uint64_t transaction_id,
|
||||||
const struct TALER_CoinSpendPublicKeyP *coin_pub,
|
const struct TALER_CoinSpendPublicKeyP *coin_pub,
|
||||||
const struct TALER_Amount *coin_value,
|
const struct TALER_Amount *coin_value,
|
||||||
const struct TALER_Amount *coin_fee,
|
const struct TALER_Amount *coin_fee)
|
||||||
const struct TALER_Amount *transfer_value)
|
|
||||||
{
|
{
|
||||||
GNUNET_assert (cls == &cb_wt_never);
|
GNUNET_assert (cls == &cb_wt_never);
|
||||||
GNUNET_assert (0 == memcmp (merchant_pub,
|
GNUNET_assert (0 == memcmp (merchant_pub,
|
||||||
@ -519,8 +516,6 @@ cb_wt_check (void *cls,
|
|||||||
&coin_value_wt));
|
&coin_value_wt));
|
||||||
GNUNET_assert (0 == TALER_amount_cmp (coin_fee,
|
GNUNET_assert (0 == TALER_amount_cmp (coin_fee,
|
||||||
&coin_fee_wt));
|
&coin_fee_wt));
|
||||||
GNUNET_assert (0 == TALER_amount_cmp (transfer_value,
|
|
||||||
&transfer_value_wt));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -532,7 +527,6 @@ cb_wtid_check (void *cls,
|
|||||||
const struct TALER_WireTransferIdentifierRawP *wtid,
|
const struct TALER_WireTransferIdentifierRawP *wtid,
|
||||||
const struct TALER_Amount *coin_contribution,
|
const struct TALER_Amount *coin_contribution,
|
||||||
const struct TALER_Amount *coin_fee,
|
const struct TALER_Amount *coin_fee,
|
||||||
const struct TALER_Amount *total_amount,
|
|
||||||
struct GNUNET_TIME_Absolute execution_time)
|
struct GNUNET_TIME_Absolute execution_time)
|
||||||
{
|
{
|
||||||
GNUNET_assert (cls == &cb_wtid_never);
|
GNUNET_assert (cls == &cb_wtid_never);
|
||||||
@ -545,8 +539,6 @@ cb_wtid_check (void *cls,
|
|||||||
&coin_value_wt));
|
&coin_value_wt));
|
||||||
GNUNET_assert (0 == TALER_amount_cmp (coin_fee,
|
GNUNET_assert (0 == TALER_amount_cmp (coin_fee,
|
||||||
&coin_fee_wt));
|
&coin_fee_wt));
|
||||||
GNUNET_assert (0 == TALER_amount_cmp (total_amount,
|
|
||||||
&transfer_value_wt));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -826,8 +818,7 @@ run (void *cls,
|
|||||||
execution_time_wt,
|
execution_time_wt,
|
||||||
&coin_pub_wt,
|
&coin_pub_wt,
|
||||||
&coin_value_wt,
|
&coin_value_wt,
|
||||||
&coin_fee_wt,
|
&coin_fee_wt));
|
||||||
&transfer_value_wt));
|
|
||||||
FAILIF (GNUNET_OK !=
|
FAILIF (GNUNET_OK !=
|
||||||
plugin->lookup_wire_transfer (plugin->cls,
|
plugin->lookup_wire_transfer (plugin->cls,
|
||||||
session,
|
session,
|
||||||
|
@ -72,11 +72,25 @@ extract_amount_nbo_helper (PGresult *result,
|
|||||||
frac_name);
|
frac_name);
|
||||||
curr_num = PQfnumber (result,
|
curr_num = PQfnumber (result,
|
||||||
curr_name);
|
curr_name);
|
||||||
if ( (val_num < 0) ||
|
if (val_num < 0)
|
||||||
(frac_num < 0) ||
|
|
||||||
(curr_num < 0) )
|
|
||||||
{
|
{
|
||||||
GNUNET_break (0);
|
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
||||||
|
"Field `%s' does not exist in result\n",
|
||||||
|
val_name);
|
||||||
|
return GNUNET_SYSERR;
|
||||||
|
}
|
||||||
|
if (frac_num < 0)
|
||||||
|
{
|
||||||
|
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
||||||
|
"Field `%s' does not exist in result\n",
|
||||||
|
frac_name);
|
||||||
|
return GNUNET_SYSERR;
|
||||||
|
}
|
||||||
|
if (curr_num < 0)
|
||||||
|
{
|
||||||
|
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
||||||
|
"Field `%s' does not exist in result\n",
|
||||||
|
curr_name);
|
||||||
return GNUNET_SYSERR;
|
return GNUNET_SYSERR;
|
||||||
}
|
}
|
||||||
if ( (PQgetisnull (result,
|
if ( (PQgetisnull (result,
|
||||||
|
Loading…
Reference in New Issue
Block a user