-expand auditordb to track progress for p2p payments
This commit is contained in:
parent
7700f6ff88
commit
f3ceeb00ea
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of TALER
|
This file is part of TALER
|
||||||
Copyright (C) 2016-2021 Taler Systems SA
|
Copyright (C) 2016-2022 Taler Systems SA
|
||||||
|
|
||||||
TALER is free software; you can redistribute it and/or modify it under the
|
TALER is free software; you can redistribute it and/or modify it under the
|
||||||
terms of the GNU Affero Public License as published by the Free Software
|
terms of the GNU Affero Public License as published by the Free Software
|
||||||
@ -471,11 +471,11 @@ check_coin_history (const struct TALER_CoinSpendPublicKeyP *coin_pub,
|
|||||||
struct TALER_Amount spent;
|
struct TALER_Amount spent;
|
||||||
struct TALER_Amount refunded;
|
struct TALER_Amount refunded;
|
||||||
struct TALER_Amount deposit_fee;
|
struct TALER_Amount deposit_fee;
|
||||||
int have_refund;
|
bool have_refund;
|
||||||
|
|
||||||
qs = TALER_ARL_edb->get_coin_transactions (TALER_ARL_edb->cls,
|
qs = TALER_ARL_edb->get_coin_transactions (TALER_ARL_edb->cls,
|
||||||
coin_pub,
|
coin_pub,
|
||||||
GNUNET_YES,
|
true,
|
||||||
&tl);
|
&tl);
|
||||||
if (0 >= qs)
|
if (0 >= qs)
|
||||||
return qs;
|
return qs;
|
||||||
@ -489,7 +489,7 @@ check_coin_history (const struct TALER_CoinSpendPublicKeyP *coin_pub,
|
|||||||
GNUNET_assert (GNUNET_OK ==
|
GNUNET_assert (GNUNET_OK ==
|
||||||
TALER_amount_set_zero (value->currency,
|
TALER_amount_set_zero (value->currency,
|
||||||
&deposit_fee));
|
&deposit_fee));
|
||||||
have_refund = GNUNET_NO;
|
have_refund = false;
|
||||||
for (struct TALER_EXCHANGEDB_TransactionList *pos = tl;
|
for (struct TALER_EXCHANGEDB_TransactionList *pos = tl;
|
||||||
NULL != pos;
|
NULL != pos;
|
||||||
pos = pos->next)
|
pos = pos->next)
|
||||||
@ -517,7 +517,7 @@ check_coin_history (const struct TALER_CoinSpendPublicKeyP *coin_pub,
|
|||||||
TALER_ARL_amount_add (&spent,
|
TALER_ARL_amount_add (&spent,
|
||||||
&spent,
|
&spent,
|
||||||
&pos->details.refund->refund_fee);
|
&pos->details.refund->refund_fee);
|
||||||
have_refund = GNUNET_YES;
|
have_refund = true;
|
||||||
break;
|
break;
|
||||||
case TALER_EXCHANGEDB_TT_OLD_COIN_RECOUP:
|
case TALER_EXCHANGEDB_TT_OLD_COIN_RECOUP:
|
||||||
/* refunded += pos->value */
|
/* refunded += pos->value */
|
||||||
@ -537,6 +537,11 @@ check_coin_history (const struct TALER_CoinSpendPublicKeyP *coin_pub,
|
|||||||
&spent,
|
&spent,
|
||||||
&pos->details.recoup_refresh->value);
|
&pos->details.recoup_refresh->value);
|
||||||
break;
|
break;
|
||||||
|
case TALER_EXCHANGEDB_TT_PURSE_DEPOSIT:
|
||||||
|
TALER_ARL_amount_add (&spent,
|
||||||
|
&spent,
|
||||||
|
&pos->details.purse_deposit->amount);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -754,9 +759,9 @@ init_denomination (const struct TALER_DenominationHashP *denom_hash,
|
|||||||
* @return NULL on error
|
* @return NULL on error
|
||||||
*/
|
*/
|
||||||
static struct DenominationSummary *
|
static struct DenominationSummary *
|
||||||
get_denomination_summary (struct CoinContext *cc,
|
get_denomination_summary (
|
||||||
const struct
|
struct CoinContext *cc,
|
||||||
TALER_EXCHANGEDB_DenominationKeyInformation *issue,
|
const struct TALER_EXCHANGEDB_DenominationKeyInformation *issue,
|
||||||
const struct TALER_DenominationHashP *dh)
|
const struct TALER_DenominationHashP *dh)
|
||||||
{
|
{
|
||||||
struct DenominationSummary *ds;
|
struct DenominationSummary *ds;
|
||||||
@ -839,7 +844,7 @@ sync_denomination (void *cls,
|
|||||||
This is really, really bad (auditor-internal invariant
|
This is really, really bad (auditor-internal invariant
|
||||||
would be violated). Hence we can "safely" assert. If
|
would be violated). Hence we can "safely" assert. If
|
||||||
this assertion fails, well, good luck: there is a bug
|
this assertion fails, well, good luck: there is a bug
|
||||||
in the auditor _or_ the auditor's database is corrupt. *///
|
in the auditor _or_ the auditor's database is corrupt. */
|
||||||
}
|
}
|
||||||
if ( (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qs) &&
|
if ( (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qs) &&
|
||||||
( (0 != ds->denom_balance.value) ||
|
( (0 != ds->denom_balance.value) ||
|
||||||
@ -1211,7 +1216,7 @@ check_known_coin (const char *operation,
|
|||||||
* @param rc what is the refresh commitment
|
* @param rc what is the refresh commitment
|
||||||
* @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
|
* @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
|
||||||
*/
|
*/
|
||||||
static int
|
static enum GNUNET_GenericReturnValue
|
||||||
refresh_session_cb (void *cls,
|
refresh_session_cb (void *cls,
|
||||||
uint64_t rowid,
|
uint64_t rowid,
|
||||||
const struct TALER_DenominationPublicKey *denom_pub,
|
const struct TALER_DenominationPublicKey *denom_pub,
|
||||||
@ -1480,7 +1485,7 @@ refresh_session_cb (void *cls,
|
|||||||
accepted a forged coin (i.e. emergency situation after
|
accepted a forged coin (i.e. emergency situation after
|
||||||
private key compromise). In that case, we cannot even
|
private key compromise). In that case, we cannot even
|
||||||
subtract the profit we make from the fee from the escrow
|
subtract the profit we make from the fee from the escrow
|
||||||
balance. Tested as part of test-auditor.sh, case #18 *///
|
balance. Tested as part of test-auditor.sh, case #18 */
|
||||||
report_amount_arithmetic_inconsistency (
|
report_amount_arithmetic_inconsistency (
|
||||||
"subtracting refresh fee from escrow balance",
|
"subtracting refresh fee from escrow balance",
|
||||||
rowid,
|
rowid,
|
||||||
@ -1668,7 +1673,7 @@ deposit_cb (void *cls,
|
|||||||
accepted a forged coin (i.e. emergency situation after
|
accepted a forged coin (i.e. emergency situation after
|
||||||
private key compromise). In that case, we cannot even
|
private key compromise). In that case, we cannot even
|
||||||
subtract the profit we make from the fee from the escrow
|
subtract the profit we make from the fee from the escrow
|
||||||
balance. Tested as part of test-auditor.sh, case #18 *///
|
balance. Tested as part of test-auditor.sh, case #18 */
|
||||||
report_amount_arithmetic_inconsistency (
|
report_amount_arithmetic_inconsistency (
|
||||||
"subtracting deposit fee from escrow balance",
|
"subtracting deposit fee from escrow balance",
|
||||||
rowid,
|
rowid,
|
||||||
|
@ -47,6 +47,10 @@ CREATE TABLE IF NOT EXISTS auditor_progress_reserve
|
|||||||
,last_reserve_out_serial_id INT8 NOT NULL DEFAULT 0
|
,last_reserve_out_serial_id INT8 NOT NULL DEFAULT 0
|
||||||
,last_reserve_recoup_serial_id INT8 NOT NULL DEFAULT 0
|
,last_reserve_recoup_serial_id INT8 NOT NULL DEFAULT 0
|
||||||
,last_reserve_close_serial_id INT8 NOT NULL DEFAULT 0
|
,last_reserve_close_serial_id INT8 NOT NULL DEFAULT 0
|
||||||
|
,last_purse_merges_serial_id INT8 NOT NULL DEFAULT 0
|
||||||
|
,last_account_merges_serial_id INT8 NOT NULL DEFAULT 0
|
||||||
|
,last_history_requests_serial_id INT8 NOT NULL DEFAULT 0
|
||||||
|
,last_close_requests_serial_id INT8 NOT NULL DEFAULT 0
|
||||||
,PRIMARY KEY (master_pub)
|
,PRIMARY KEY (master_pub)
|
||||||
);
|
);
|
||||||
COMMENT ON TABLE auditor_progress_reserve
|
COMMENT ON TABLE auditor_progress_reserve
|
||||||
@ -82,6 +86,7 @@ CREATE TABLE IF NOT EXISTS auditor_progress_coin
|
|||||||
,last_refund_serial_id INT8 NOT NULL DEFAULT 0
|
,last_refund_serial_id INT8 NOT NULL DEFAULT 0
|
||||||
,last_recoup_serial_id INT8 NOT NULL DEFAULT 0
|
,last_recoup_serial_id INT8 NOT NULL DEFAULT 0
|
||||||
,last_recoup_refresh_serial_id INT8 NOT NULL DEFAULT 0
|
,last_recoup_refresh_serial_id INT8 NOT NULL DEFAULT 0
|
||||||
|
,last_purse_deposits_serial_id INT8 NOT NULL DEFAULT 0
|
||||||
,PRIMARY KEY (master_pub)
|
,PRIMARY KEY (master_pub)
|
||||||
);
|
);
|
||||||
COMMENT ON TABLE auditor_progress_coin
|
COMMENT ON TABLE auditor_progress_coin
|
||||||
|
@ -230,8 +230,12 @@ setup_connection (struct PostgresClosure *pg)
|
|||||||
",last_reserve_out_serial_id=$2"
|
",last_reserve_out_serial_id=$2"
|
||||||
",last_reserve_recoup_serial_id=$3"
|
",last_reserve_recoup_serial_id=$3"
|
||||||
",last_reserve_close_serial_id=$4"
|
",last_reserve_close_serial_id=$4"
|
||||||
" WHERE master_pub=$5",
|
",last_purse_merges_serial_id=$5"
|
||||||
5),
|
",last_account_merges_serial_id=$6"
|
||||||
|
",last_history_requests_serial_id=$7"
|
||||||
|
",last_close_requests_serial_id=$8"
|
||||||
|
" WHERE master_pub=$9",
|
||||||
|
9),
|
||||||
/* Used in #postgres_get_auditor_progress_reserve() */
|
/* Used in #postgres_get_auditor_progress_reserve() */
|
||||||
GNUNET_PQ_make_prepare ("auditor_progress_select_reserve",
|
GNUNET_PQ_make_prepare ("auditor_progress_select_reserve",
|
||||||
"SELECT"
|
"SELECT"
|
||||||
@ -239,6 +243,10 @@ setup_connection (struct PostgresClosure *pg)
|
|||||||
",last_reserve_out_serial_id"
|
",last_reserve_out_serial_id"
|
||||||
",last_reserve_recoup_serial_id"
|
",last_reserve_recoup_serial_id"
|
||||||
",last_reserve_close_serial_id"
|
",last_reserve_close_serial_id"
|
||||||
|
",last_purse_merges_serial_id"
|
||||||
|
",last_account_merges_serial_id"
|
||||||
|
",last_history_requests_serial_id"
|
||||||
|
",last_close_requests_serial_id"
|
||||||
" FROM auditor_progress_reserve"
|
" FROM auditor_progress_reserve"
|
||||||
" WHERE master_pub=$1;",
|
" WHERE master_pub=$1;",
|
||||||
1),
|
1),
|
||||||
@ -250,8 +258,12 @@ setup_connection (struct PostgresClosure *pg)
|
|||||||
",last_reserve_out_serial_id"
|
",last_reserve_out_serial_id"
|
||||||
",last_reserve_recoup_serial_id"
|
",last_reserve_recoup_serial_id"
|
||||||
",last_reserve_close_serial_id"
|
",last_reserve_close_serial_id"
|
||||||
") VALUES ($1,$2,$3,$4,$5);",
|
",last_purse_merges_serial_id"
|
||||||
5),
|
",last_account_merges_serial_id"
|
||||||
|
",last_history_requests_serial_id"
|
||||||
|
",last_close_requests_serial_id"
|
||||||
|
") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9);",
|
||||||
|
9),
|
||||||
/* Used in #postgres_update_auditor_progress_aggregation() */
|
/* Used in #postgres_update_auditor_progress_aggregation() */
|
||||||
GNUNET_PQ_make_prepare ("auditor_progress_update_aggregation",
|
GNUNET_PQ_make_prepare ("auditor_progress_update_aggregation",
|
||||||
"UPDATE auditor_progress_aggregation SET "
|
"UPDATE auditor_progress_aggregation SET "
|
||||||
@ -301,8 +313,9 @@ setup_connection (struct PostgresClosure *pg)
|
|||||||
",last_refund_serial_id=$4"
|
",last_refund_serial_id=$4"
|
||||||
",last_recoup_serial_id=$5"
|
",last_recoup_serial_id=$5"
|
||||||
",last_recoup_refresh_serial_id=$6"
|
",last_recoup_refresh_serial_id=$6"
|
||||||
" WHERE master_pub=$7",
|
",last_purse_deposits_serial_id=$7"
|
||||||
7),
|
" WHERE master_pub=$8",
|
||||||
|
8),
|
||||||
/* Used in #postgres_get_auditor_progress_coin() */
|
/* Used in #postgres_get_auditor_progress_coin() */
|
||||||
GNUNET_PQ_make_prepare ("auditor_progress_select_coin",
|
GNUNET_PQ_make_prepare ("auditor_progress_select_coin",
|
||||||
"SELECT"
|
"SELECT"
|
||||||
@ -312,6 +325,7 @@ setup_connection (struct PostgresClosure *pg)
|
|||||||
",last_refund_serial_id"
|
",last_refund_serial_id"
|
||||||
",last_recoup_serial_id"
|
",last_recoup_serial_id"
|
||||||
",last_recoup_refresh_serial_id"
|
",last_recoup_refresh_serial_id"
|
||||||
|
",last_purse_deposits_serial_id"
|
||||||
" FROM auditor_progress_coin"
|
" FROM auditor_progress_coin"
|
||||||
" WHERE master_pub=$1;",
|
" WHERE master_pub=$1;",
|
||||||
1),
|
1),
|
||||||
@ -325,8 +339,9 @@ setup_connection (struct PostgresClosure *pg)
|
|||||||
",last_refund_serial_id"
|
",last_refund_serial_id"
|
||||||
",last_recoup_serial_id"
|
",last_recoup_serial_id"
|
||||||
",last_recoup_refresh_serial_id"
|
",last_recoup_refresh_serial_id"
|
||||||
") VALUES ($1,$2,$3,$4,$5,$6,$7);",
|
",last_purse_deposits_serial_id"
|
||||||
7),
|
") VALUES ($1,$2,$3,$4,$5,$6,$7,$8);",
|
||||||
|
8),
|
||||||
/* Used in #postgres_insert_wire_auditor_account_progress() */
|
/* Used in #postgres_insert_wire_auditor_account_progress() */
|
||||||
GNUNET_PQ_make_prepare ("wire_auditor_account_progress_insert",
|
GNUNET_PQ_make_prepare ("wire_auditor_account_progress_insert",
|
||||||
"INSERT INTO wire_auditor_account_progress "
|
"INSERT INTO wire_auditor_account_progress "
|
||||||
@ -1225,6 +1240,10 @@ postgres_insert_auditor_progress_reserve (
|
|||||||
GNUNET_PQ_query_param_uint64 (&ppr->last_reserve_out_serial_id),
|
GNUNET_PQ_query_param_uint64 (&ppr->last_reserve_out_serial_id),
|
||||||
GNUNET_PQ_query_param_uint64 (&ppr->last_reserve_recoup_serial_id),
|
GNUNET_PQ_query_param_uint64 (&ppr->last_reserve_recoup_serial_id),
|
||||||
GNUNET_PQ_query_param_uint64 (&ppr->last_reserve_close_serial_id),
|
GNUNET_PQ_query_param_uint64 (&ppr->last_reserve_close_serial_id),
|
||||||
|
GNUNET_PQ_query_param_uint64 (&ppr->last_purse_merges_serial_id),
|
||||||
|
GNUNET_PQ_query_param_uint64 (&ppr->last_account_merges_serial_id),
|
||||||
|
GNUNET_PQ_query_param_uint64 (&ppr->last_history_requests_serial_id),
|
||||||
|
GNUNET_PQ_query_param_uint64 (&ppr->last_close_requests_serial_id),
|
||||||
GNUNET_PQ_query_param_end
|
GNUNET_PQ_query_param_end
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1255,6 +1274,10 @@ postgres_update_auditor_progress_reserve (
|
|||||||
GNUNET_PQ_query_param_uint64 (&ppr->last_reserve_out_serial_id),
|
GNUNET_PQ_query_param_uint64 (&ppr->last_reserve_out_serial_id),
|
||||||
GNUNET_PQ_query_param_uint64 (&ppr->last_reserve_recoup_serial_id),
|
GNUNET_PQ_query_param_uint64 (&ppr->last_reserve_recoup_serial_id),
|
||||||
GNUNET_PQ_query_param_uint64 (&ppr->last_reserve_close_serial_id),
|
GNUNET_PQ_query_param_uint64 (&ppr->last_reserve_close_serial_id),
|
||||||
|
GNUNET_PQ_query_param_uint64 (&ppr->last_purse_merges_serial_id),
|
||||||
|
GNUNET_PQ_query_param_uint64 (&ppr->last_account_merges_serial_id),
|
||||||
|
GNUNET_PQ_query_param_uint64 (&ppr->last_history_requests_serial_id),
|
||||||
|
GNUNET_PQ_query_param_uint64 (&ppr->last_close_requests_serial_id),
|
||||||
GNUNET_PQ_query_param_auto_from_type (master_pub),
|
GNUNET_PQ_query_param_auto_from_type (master_pub),
|
||||||
GNUNET_PQ_query_param_end
|
GNUNET_PQ_query_param_end
|
||||||
};
|
};
|
||||||
@ -1293,6 +1316,14 @@ postgres_get_auditor_progress_reserve (
|
|||||||
&ppr->last_reserve_recoup_serial_id),
|
&ppr->last_reserve_recoup_serial_id),
|
||||||
GNUNET_PQ_result_spec_uint64 ("last_reserve_close_serial_id",
|
GNUNET_PQ_result_spec_uint64 ("last_reserve_close_serial_id",
|
||||||
&ppr->last_reserve_close_serial_id),
|
&ppr->last_reserve_close_serial_id),
|
||||||
|
GNUNET_PQ_result_spec_uint64 ("last_purse_merges_serial_id",
|
||||||
|
&ppr->last_purse_merges_serial_id),
|
||||||
|
GNUNET_PQ_result_spec_uint64 ("last_account_merges_serial_id",
|
||||||
|
&ppr->last_account_merges_serial_id),
|
||||||
|
GNUNET_PQ_result_spec_uint64 ("last_history_requests_serial_id",
|
||||||
|
&ppr->last_history_requests_serial_id),
|
||||||
|
GNUNET_PQ_result_spec_uint64 ("last_close_requests_serial_id",
|
||||||
|
&ppr->last_close_requests_serial_id),
|
||||||
GNUNET_PQ_result_spec_end
|
GNUNET_PQ_result_spec_end
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1503,6 +1534,7 @@ postgres_insert_auditor_progress_coin (
|
|||||||
GNUNET_PQ_query_param_uint64 (&ppc->last_refund_serial_id),
|
GNUNET_PQ_query_param_uint64 (&ppc->last_refund_serial_id),
|
||||||
GNUNET_PQ_query_param_uint64 (&ppc->last_recoup_serial_id),
|
GNUNET_PQ_query_param_uint64 (&ppc->last_recoup_serial_id),
|
||||||
GNUNET_PQ_query_param_uint64 (&ppc->last_recoup_refresh_serial_id),
|
GNUNET_PQ_query_param_uint64 (&ppc->last_recoup_refresh_serial_id),
|
||||||
|
GNUNET_PQ_query_param_uint64 (&ppc->last_purse_deposits_serial_id),
|
||||||
GNUNET_PQ_query_param_end
|
GNUNET_PQ_query_param_end
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1535,6 +1567,7 @@ postgres_update_auditor_progress_coin (
|
|||||||
GNUNET_PQ_query_param_uint64 (&ppc->last_refund_serial_id),
|
GNUNET_PQ_query_param_uint64 (&ppc->last_refund_serial_id),
|
||||||
GNUNET_PQ_query_param_uint64 (&ppc->last_recoup_serial_id),
|
GNUNET_PQ_query_param_uint64 (&ppc->last_recoup_serial_id),
|
||||||
GNUNET_PQ_query_param_uint64 (&ppc->last_recoup_refresh_serial_id),
|
GNUNET_PQ_query_param_uint64 (&ppc->last_recoup_refresh_serial_id),
|
||||||
|
GNUNET_PQ_query_param_uint64 (&ppc->last_purse_deposits_serial_id),
|
||||||
GNUNET_PQ_query_param_auto_from_type (master_pub),
|
GNUNET_PQ_query_param_auto_from_type (master_pub),
|
||||||
GNUNET_PQ_query_param_end
|
GNUNET_PQ_query_param_end
|
||||||
};
|
};
|
||||||
@ -1577,6 +1610,8 @@ postgres_get_auditor_progress_coin (
|
|||||||
&ppc->last_recoup_serial_id),
|
&ppc->last_recoup_serial_id),
|
||||||
GNUNET_PQ_result_spec_uint64 ("last_recoup_refresh_serial_id",
|
GNUNET_PQ_result_spec_uint64 ("last_recoup_refresh_serial_id",
|
||||||
&ppc->last_recoup_refresh_serial_id),
|
&ppc->last_recoup_refresh_serial_id),
|
||||||
|
GNUNET_PQ_result_spec_uint64 ("last_purse_deposits_serial_id",
|
||||||
|
&ppc->last_purse_deposits_serial_id),
|
||||||
GNUNET_PQ_result_spec_end
|
GNUNET_PQ_result_spec_end
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of TALER
|
This file is part of TALER
|
||||||
Copyright (C) 2014-2021 Taler Systems SA
|
Copyright (C) 2014-2022 Taler Systems SA
|
||||||
|
|
||||||
TALER is free software; you can redistribute it and/or modify it under the
|
TALER is free software; you can redistribute it and/or modify it under the
|
||||||
terms of the GNU General Public License as published by the Free Software
|
terms of the GNU General Public License as published by the Free Software
|
||||||
@ -157,6 +157,30 @@ struct TALER_AUDITORDB_ProgressPointReserve
|
|||||||
*/
|
*/
|
||||||
uint64_t last_reserve_close_serial_id;
|
uint64_t last_reserve_close_serial_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* serial ID of the last purse_merges
|
||||||
|
* entry the auditor processed.
|
||||||
|
*/
|
||||||
|
uint64_t last_purse_merges_serial_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* serial ID of the last account_merges
|
||||||
|
* entry the auditor processed.
|
||||||
|
*/
|
||||||
|
uint64_t last_account_merges_serial_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* serial ID of the last history_requests
|
||||||
|
* entry the auditor processed.
|
||||||
|
*/
|
||||||
|
uint64_t last_history_requests_serial_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* serial ID of the last close_requests
|
||||||
|
* entry the auditor processed.
|
||||||
|
*/
|
||||||
|
uint64_t last_close_requests_serial_id;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -224,6 +248,11 @@ struct TALER_AUDITORDB_ProgressPointCoin
|
|||||||
*/
|
*/
|
||||||
uint64_t last_recoup_refresh_serial_id;
|
uint64_t last_recoup_refresh_serial_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Serial ID of the last purse_deposits operation the auditor processed.
|
||||||
|
*/
|
||||||
|
uint64_t last_purse_deposits_serial_id;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user