fixing #3812/#3828
This commit is contained in:
parent
357235618f
commit
998a2f3aa6
@ -346,12 +346,7 @@ struct TALER_MINTDB_RefreshMelt
|
||||
*/
|
||||
struct TALER_Amount amount_with_fee;
|
||||
|
||||
/** FIXME: This can be retrieved from the Denomination? Do we need this?
|
||||
* (Yes, it can be derived from coin's denomination, but the extra
|
||||
* lookup/indirection also costs and is inconvenient. And when
|
||||
* checking signatures and balances, do we really always want this
|
||||
* extra step of going to the denominations? (#3828)
|
||||
*
|
||||
/**
|
||||
* Melting fee charged by the mint. This must match the Mint's
|
||||
* denomination key's melting fee. If the client puts in an invalid
|
||||
* melting fee (too high or too low) that does not match the Mint's
|
||||
@ -925,7 +920,7 @@ struct TALER_MINTDB_Plugin
|
||||
* @param sesssion database connection
|
||||
* @param session_hash hash to identify refresh session
|
||||
* @param oldcoin_index index of the coin to retrieve
|
||||
* @param melt melt data to fill in
|
||||
* @param melt melt data to fill in, can be NULL
|
||||
* @return #GNUNET_OK on success
|
||||
* #GNUNET_SYSERR on internal error
|
||||
*/
|
||||
|
@ -307,9 +307,6 @@ postgres_create_tables (void *cls,
|
||||
key (coin_pub), the melting session, the index of this coin in that
|
||||
session, the signature affirming the melting and the amount that
|
||||
this coin contributed to the melting session.
|
||||
TODO: Should we include
|
||||
both amounts (also the fee explicitly) in the table
|
||||
to ease auditing of operations? (#3812)
|
||||
*/
|
||||
SQLEXEC("CREATE TABLE IF NOT EXISTS refresh_melts "
|
||||
"(coin_pub BYTEA NOT NULL REFERENCES known_coins (coin_pub)"
|
||||
@ -319,6 +316,9 @@ postgres_create_tables (void *cls,
|
||||
",amount_with_fee_val INT8 NOT NULL"
|
||||
",amount_with_fee_frac INT8 NOT NULL"
|
||||
",amount_with_fee_curr VARCHAR("TALER_CURRENCY_LEN_STR") NOT NULL"
|
||||
",melt_fee_val INT8 NOT NULL"
|
||||
",melt_fee_frac INT8 NOT NULL"
|
||||
",melt_fee_curr VARCHAR("TALER_CURRENCY_LEN_STR") NOT NULL"
|
||||
",PRIMARY KEY (session, oldcoin_index)" /* a coin can be used only
|
||||
once in a refresh session */
|
||||
") ");
|
||||
@ -650,9 +650,12 @@ postgres_prepare (PGconn *db_conn)
|
||||
",amount_with_fee_val "
|
||||
",amount_with_fee_frac "
|
||||
",amount_with_fee_curr "
|
||||
",melt_fee_val "
|
||||
",melt_fee_frac "
|
||||
",melt_fee_curr "
|
||||
") VALUES "
|
||||
"($1, $2, $3, $4, $5, $6, $7);",
|
||||
7, NULL);
|
||||
"($1, $2, $3, $4, $5, $6, $7, $8, $9, $10);",
|
||||
10, NULL);
|
||||
/* Used in #postgres_get_refresh_melt to obtain information
|
||||
about melted coins */
|
||||
PREPARE ("get_refresh_melt",
|
||||
@ -662,8 +665,11 @@ postgres_prepare (PGconn *db_conn)
|
||||
",amount_with_fee_val"
|
||||
",amount_with_fee_frac"
|
||||
",amount_with_fee_curr"
|
||||
" FROM refresh_melts "
|
||||
"WHERE session=$1 AND oldcoin_index=$2",
|
||||
",melt_fee_val "
|
||||
",melt_fee_frac "
|
||||
",melt_fee_curr "
|
||||
" FROM refresh_melts"
|
||||
" WHERE session=$1 AND oldcoin_index=$2",
|
||||
2, NULL);
|
||||
/* FIXME: should have a way to query the 'refresh_melts' by
|
||||
coin public key (#3813) */
|
||||
@ -1926,7 +1932,7 @@ postgres_insert_refresh_melt (void *cls,
|
||||
TALER_PQ_query_param_uint16 (&oldcoin_index),
|
||||
TALER_PQ_query_param_auto_from_type (&melt->coin_sig),
|
||||
TALER_PQ_query_param_amount (&melt->amount_with_fee),
|
||||
/* FIXME: melt_fee not stored, #3828 */
|
||||
TALER_PQ_query_param_amount (&melt->melt_fee),
|
||||
TALER_PQ_query_param_end
|
||||
};
|
||||
int ret;
|
||||
@ -1974,7 +1980,7 @@ postgres_insert_refresh_melt (void *cls,
|
||||
* @param session database connection
|
||||
* @param session_hash session hash of the melt operation
|
||||
* @param oldcoin_index index of the coin to retrieve
|
||||
* @param melt melt data to fill in
|
||||
* @param melt melt data to fill in, can be NULL
|
||||
* @return #GNUNET_OK on success
|
||||
* #GNUNET_SYSERR on internal error
|
||||
*/
|
||||
@ -1989,6 +1995,7 @@ postgres_get_refresh_melt (void *cls,
|
||||
struct TALER_CoinPublicInfo coin;
|
||||
struct TALER_CoinSpendSignatureP coin_sig;
|
||||
struct TALER_Amount amount_with_fee;
|
||||
struct TALER_Amount melt_fee;
|
||||
uint16_t oldcoin_index_nbo = htons (oldcoin_index);
|
||||
struct TALER_PQ_QueryParam params[] = {
|
||||
TALER_PQ_query_param_auto_from_type (session_hash),
|
||||
@ -2021,7 +2028,7 @@ postgres_get_refresh_melt (void *cls,
|
||||
TALER_PQ_result_spec_auto_from_type ("coin_pub", &coin.coin_pub),
|
||||
TALER_PQ_result_spec_auto_from_type ("coin_sig", &coin_sig),
|
||||
TALER_PQ_result_spec_amount ("amount_with_fee", &amount_with_fee),
|
||||
/* 'melt_fee' not initialized (#3828) */
|
||||
TALER_PQ_result_spec_amount ("amount_with_fee", &melt_fee),
|
||||
TALER_PQ_result_spec_end
|
||||
};
|
||||
if (GNUNET_OK != TALER_PQ_extract_result (result, rs, 0))
|
||||
@ -2044,7 +2051,7 @@ postgres_get_refresh_melt (void *cls,
|
||||
melt->coin_sig = coin_sig;
|
||||
melt->session_hash = *session_hash;
|
||||
melt->amount_with_fee = amount_with_fee;
|
||||
/* FIXME: melt->melt_fee = ??, #3812 / #3828 */
|
||||
melt->melt_fee = melt_fee;
|
||||
return GNUNET_OK;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user