aboutsummaryrefslogtreecommitdiff
path: root/src/include/taler_exchangedb_plugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/taler_exchangedb_plugin.h')
-rw-r--r--src/include/taler_exchangedb_plugin.h230
1 files changed, 18 insertions, 212 deletions
diff --git a/src/include/taler_exchangedb_plugin.h b/src/include/taler_exchangedb_plugin.h
index 4cf6514f3..eac7bf756 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -93,12 +93,6 @@ struct TALER_ReserveEventP
93GNUNET_NETWORK_STRUCT_END 93GNUNET_NETWORK_STRUCT_END
94 94
95/** 95/**
96 * Event registration record.
97 */
98struct TALER_EXCHANGEDB_EventHandler;
99
100
101/**
102 * Meta data about an exchange online signing key. 96 * Meta data about an exchange online signing key.
103 */ 97 */
104struct TALER_EXCHANGEDB_SignkeyMetaData 98struct TALER_EXCHANGEDB_SignkeyMetaData
@@ -1449,12 +1443,6 @@ struct TALER_EXCHANGEDB_TransactionList
1449 1443
1450 1444
1451/** 1445/**
1452 * @brief Handle for a database session (per-thread, for transactions).
1453 */
1454struct TALER_EXCHANGEDB_Session;
1455
1456
1457/**
1458 * Function called with details about deposits that have been made, 1446 * Function called with details about deposits that have been made,
1459 * with the goal of executing the corresponding wire transaction. 1447 * with the goal of executing the corresponding wire transaction.
1460 * 1448 *
@@ -2071,16 +2059,6 @@ struct TALER_EXCHANGEDB_Plugin
2071 */ 2059 */
2072 char *library_name; 2060 char *library_name;
2073 2061
2074 /**
2075 * Get the thread-local (!) database-handle.
2076 * Connect to the db if the connection does not exist yet.
2077 *
2078 * @param cls the @e cls of this struct with the plugin-specific state
2079 * @returns the database connection, or NULL on error
2080 */
2081 struct TALER_EXCHANGEDB_Session *
2082 (*get_session) (void *cls);
2083
2084 2062
2085 /** 2063 /**
2086 * Drop the Taler tables. This should only be used in testcases. 2064 * Drop the Taler tables. This should only be used in testcases.
@@ -2106,14 +2084,12 @@ struct TALER_EXCHANGEDB_Plugin
2106 * Start a transaction. 2084 * Start a transaction.
2107 * 2085 *
2108 * @param cls the @e cls of this struct with the plugin-specific state 2086 * @param cls the @e cls of this struct with the plugin-specific state
2109 * @param session connection to use
2110 * @param name unique name identifying the transaction (for debugging), 2087 * @param name unique name identifying the transaction (for debugging),
2111 * must point to a constant 2088 * must point to a constant
2112 * @return #GNUNET_OK on success 2089 * @return #GNUNET_OK on success
2113 */ 2090 */
2114 int 2091 int
2115 (*start) (void *cls, 2092 (*start) (void *cls,
2116 struct TALER_EXCHANGEDB_Session *session,
2117 const char *name); 2093 const char *name);
2118 2094
2119 2095
@@ -2121,14 +2097,12 @@ struct TALER_EXCHANGEDB_Plugin
2121 * Start a READ COMMITTED transaction. 2097 * Start a READ COMMITTED transaction.
2122 * 2098 *
2123 * @param cls the `struct PostgresClosure` with the plugin-specific state 2099 * @param cls the `struct PostgresClosure` with the plugin-specific state
2124 * @param session the database connection
2125 * @param name unique name identifying the transaction (for debugging) 2100 * @param name unique name identifying the transaction (for debugging)
2126 * must point to a constant 2101 * must point to a constant
2127 * @return #GNUNET_OK on success 2102 * @return #GNUNET_OK on success
2128 */ 2103 */
2129 int 2104 int
2130 (*start_read_committed)(void *cls, 2105 (*start_read_committed)(void *cls,
2131 struct TALER_EXCHANGEDB_Session *session,
2132 const char *name); 2106 const char *name);
2133 2107
2134 2108
@@ -2136,12 +2110,10 @@ struct TALER_EXCHANGEDB_Plugin
2136 * Commit a transaction. 2110 * Commit a transaction.
2137 * 2111 *
2138 * @param cls the @e cls of this struct with the plugin-specific state 2112 * @param cls the @e cls of this struct with the plugin-specific state
2139 * @param session connection to use
2140 * @return transaction status 2113 * @return transaction status
2141 */ 2114 */
2142 enum GNUNET_DB_QueryStatus 2115 enum GNUNET_DB_QueryStatus
2143 (*commit)(void *cls, 2116 (*commit)(void *cls);
2144 struct TALER_EXCHANGEDB_Session *session);
2145 2117
2146 2118
2147 /** 2119 /**
@@ -2150,22 +2122,21 @@ struct TALER_EXCHANGEDB_Plugin
2150 * Does not return anything, as we will continue regardless of the outcome. 2122 * Does not return anything, as we will continue regardless of the outcome.
2151 * 2123 *
2152 * @param cls the `struct PostgresClosure` with the plugin-specific state 2124 * @param cls the `struct PostgresClosure` with the plugin-specific state
2153 * @param session the database connection 2125 * @return #GNUNET_OK if everything is fine
2126 * #GNUNET_NO if a transaction was rolled back
2127 * #GNUNET_SYSERR on hard errors
2154 */ 2128 */
2155 void 2129 enum GNUNET_GenericReturnValue
2156 (*preflight) (void *cls, 2130 (*preflight)(void *cls);
2157 struct TALER_EXCHANGEDB_Session *session);
2158 2131
2159 2132
2160 /** 2133 /**
2161 * Abort/rollback a transaction. 2134 * Abort/rollback a transaction.
2162 * 2135 *
2163 * @param cls the @e cls of this struct with the plugin-specific state 2136 * @param cls the @e cls of this struct with the plugin-specific state
2164 * @param session connection to use
2165 */ 2137 */
2166 void 2138 void
2167 (*rollback) (void *cls, 2139 (*rollback) (void *cls);
2168 struct TALER_EXCHANGEDB_Session *session);
2169 2140
2170 2141
2171 /** 2142 /**
@@ -2179,7 +2150,7 @@ struct TALER_EXCHANGEDB_Plugin
2179 * @param cb_cls closure for @a cb 2150 * @param cb_cls closure for @a cb
2180 * @return handle useful to cancel the listener 2151 * @return handle useful to cancel the listener
2181 */ 2152 */
2182 struct TALER_EXCHANGEDB_EventHandler * 2153 struct GNUNET_DB_EventHandler *
2183 (*event_listen)(void *cls, 2154 (*event_listen)(void *cls,
2184 struct GNUNET_TIME_Relative timeout, 2155 struct GNUNET_TIME_Relative timeout,
2185 const struct GNUNET_DB_EventHeaderP *es, 2156 const struct GNUNET_DB_EventHeaderP *es,
@@ -2194,21 +2165,19 @@ struct TALER_EXCHANGEDB_Plugin
2194 */ 2165 */
2195 void 2166 void
2196 (*event_listen_cancel)(void *cls, 2167 (*event_listen_cancel)(void *cls,
2197 struct TALER_EXCHANGEDB_EventHandler *eh); 2168 struct GNUNET_DB_EventHandler *eh);
2198 2169
2199 2170
2200 /** 2171 /**
2201 * Notify all that listen on @a es of an event. 2172 * Notify all that listen on @a es of an event.
2202 * 2173 *
2203 * @param cls database context to use 2174 * @param cls database context to use
2204 * @param session connection to use
2205 * @param es specification of the event to generate 2175 * @param es specification of the event to generate
2206 * @param extra additional event data provided 2176 * @param extra additional event data provided
2207 * @param extra_size number of bytes in @a extra 2177 * @param extra_size number of bytes in @a extra
2208 */ 2178 */
2209 void 2179 void
2210 (*event_notify)(void *cls, 2180 (*event_notify)(void *cls,
2211 struct TALER_EXCHANGEDB_Session *session,
2212 const struct GNUNET_DB_EventHeaderP *es, 2181 const struct GNUNET_DB_EventHeaderP *es,
2213 const void *extra, 2182 const void *extra,
2214 size_t extra_size); 2183 size_t extra_size);
@@ -2220,7 +2189,6 @@ struct TALER_EXCHANGEDB_Plugin
2220 * with this key have. 2189 * with this key have.
2221 * 2190 *
2222 * @param cls the @e cls of this struct with the plugin-specific state 2191 * @param cls the @e cls of this struct with the plugin-specific state
2223 * @param session connection to use
2224 * @param denom_pub the public key used for signing coins of this denomination 2192 * @param denom_pub the public key used for signing coins of this denomination
2225 * @param issue issuing information with value, fees and other info about the denomination 2193 * @param issue issuing information with value, fees and other info about the denomination
2226 * @return status of the query 2194 * @return status of the query
@@ -2228,7 +2196,6 @@ struct TALER_EXCHANGEDB_Plugin
2228 enum GNUNET_DB_QueryStatus 2196 enum GNUNET_DB_QueryStatus
2229 (*insert_denomination_info)( 2197 (*insert_denomination_info)(
2230 void *cls, 2198 void *cls,
2231 struct TALER_EXCHANGEDB_Session *session,
2232 const struct TALER_DenominationPublicKey *denom_pub, 2199 const struct TALER_DenominationPublicKey *denom_pub,
2233 const struct TALER_EXCHANGEDB_DenominationKeyInformationP *issue); 2200 const struct TALER_EXCHANGEDB_DenominationKeyInformationP *issue);
2234 2201
@@ -2237,7 +2204,6 @@ struct TALER_EXCHANGEDB_Plugin
2237 * Fetch information about a denomination key. 2204 * Fetch information about a denomination key.
2238 * 2205 *
2239 * @param cls the @e cls of this struct with the plugin-specific state 2206 * @param cls the @e cls of this struct with the plugin-specific state
2240 * @param session connection to use
2241 * @param denom_pub_hash hash of the public key used for signing coins of this denomination 2207 * @param denom_pub_hash hash of the public key used for signing coins of this denomination
2242 * @param[out] issue set to issue information with value, fees and other info about the coin 2208 * @param[out] issue set to issue information with value, fees and other info about the coin
2243 * @return transaction status code 2209 * @return transaction status code
@@ -2245,7 +2211,6 @@ struct TALER_EXCHANGEDB_Plugin
2245 enum GNUNET_DB_QueryStatus 2211 enum GNUNET_DB_QueryStatus
2246 (*get_denomination_info)( 2212 (*get_denomination_info)(
2247 void *cls, 2213 void *cls,
2248 struct TALER_EXCHANGEDB_Session *session,
2249 const struct GNUNET_HashCode *denom_pub_hash, 2214 const struct GNUNET_HashCode *denom_pub_hash,
2250 struct TALER_EXCHANGEDB_DenominationKeyInformationP *issue); 2215 struct TALER_EXCHANGEDB_DenominationKeyInformationP *issue);
2251 2216
@@ -2257,14 +2222,12 @@ struct TALER_EXCHANGEDB_Plugin
2257 * be initialized yet. 2222 * be initialized yet.
2258 * 2223 *
2259 * @param cls the @e cls of this struct with the plugin-specific state 2224 * @param cls the @e cls of this struct with the plugin-specific state
2260 * @param session session to use
2261 * @param cb function to call on each denomination key 2225 * @param cb function to call on each denomination key
2262 * @param cb_cls closure for @a cb 2226 * @param cb_cls closure for @a cb
2263 * @return transaction status code 2227 * @return transaction status code
2264 */ 2228 */
2265 enum GNUNET_DB_QueryStatus 2229 enum GNUNET_DB_QueryStatus
2266 (*iterate_denomination_info)(void *cls, 2230 (*iterate_denomination_info)(void *cls,
2267 struct TALER_EXCHANGEDB_Session *session,
2268 TALER_EXCHANGEDB_DenominationCallback cb, 2231 TALER_EXCHANGEDB_DenominationCallback cb,
2269 void *cb_cls); 2232 void *cb_cls);
2270 2233
@@ -2272,7 +2235,7 @@ struct TALER_EXCHANGEDB_Plugin
2272 /** 2235 /**
2273 * Function called to invoke @a cb on every known denomination key (revoked 2236 * Function called to invoke @a cb on every known denomination key (revoked
2274 * and non-revoked) that has been signed by the master key. Runs in its own 2237 * and non-revoked) that has been signed by the master key. Runs in its own
2275 * read-only transaction (hence no session provided). 2238 * read-only transaction.
2276 * 2239 *
2277 * @param cls the @e cls of this struct with the plugin-specific state 2240 * @param cls the @e cls of this struct with the plugin-specific state
2278 * @param cb function to call on each denomination key 2241 * @param cb function to call on each denomination key
@@ -2287,8 +2250,7 @@ struct TALER_EXCHANGEDB_Plugin
2287 /** 2250 /**
2288 * Function called to invoke @a cb on every non-revoked exchange signing key 2251 * Function called to invoke @a cb on every non-revoked exchange signing key
2289 * that has been signed by the master key. Revoked and (for signing!) 2252 * that has been signed by the master key. Revoked and (for signing!)
2290 * expired keys are skipped. Runs in its own read-only transaction (hence no 2253 * expired keys are skipped. Runs in its own read-only transaction.
2291 * session provided).
2292 * 2254 *
2293 * @param cls the @e cls of this struct with the plugin-specific state 2255 * @param cls the @e cls of this struct with the plugin-specific state
2294 * @param cb function to call on each signing key 2256 * @param cb function to call on each signing key
@@ -2303,8 +2265,7 @@ struct TALER_EXCHANGEDB_Plugin
2303 2265
2304 /** 2266 /**
2305 * Function called to invoke @a cb on every active auditor. Disabled 2267 * Function called to invoke @a cb on every active auditor. Disabled
2306 * auditors are skipped. Runs in its own read-only transaction (hence no 2268 * auditors are skipped. Runs in its own read-only transaction.
2307 * session provided).
2308 * 2269 *
2309 * @param cls the @e cls of this struct with the plugin-specific state 2270 * @param cls the @e cls of this struct with the plugin-specific state
2310 * @param cb function to call on each active auditor 2271 * @param cb function to call on each active auditor
@@ -2320,8 +2281,7 @@ struct TALER_EXCHANGEDB_Plugin
2320 /** 2281 /**
2321 * Function called to invoke @a cb on every denomination with an active 2282 * Function called to invoke @a cb on every denomination with an active
2322 * auditor. Disabled auditors and denominations without auditor are 2283 * auditor. Disabled auditors and denominations without auditor are
2323 * skipped. Runs in its own read-only transaction (hence no session 2284 * skipped. Runs in its own read-only transaction.
2324 * provided).
2325 * 2285 *
2326 * @param cls the @e cls of this struct with the plugin-specific state 2286 * @param cls the @e cls of this struct with the plugin-specific state
2327 * @param cb function to call on each active auditor-denomination pair 2287 * @param cb function to call on each active auditor-denomination pair
@@ -2339,7 +2299,6 @@ struct TALER_EXCHANGEDB_Plugin
2339 * Get the summary of a reserve. 2299 * Get the summary of a reserve.
2340 * 2300 *
2341 * @param cls the @e cls of this struct with the plugin-specific state 2301 * @param cls the @e cls of this struct with the plugin-specific state
2342 * @param session the database connection handle
2343 * @param[in,out] reserve the reserve data. The public key of the reserve should be set 2302 * @param[in,out] reserve the reserve data. The public key of the reserve should be set
2344 * in this structure; it is used to query the database. The balance 2303 * in this structure; it is used to query the database. The balance
2345 * and expiration are then filled accordingly. 2304 * and expiration are then filled accordingly.
@@ -2347,7 +2306,6 @@ struct TALER_EXCHANGEDB_Plugin
2347 */ 2306 */
2348 enum GNUNET_DB_QueryStatus 2307 enum GNUNET_DB_QueryStatus
2349 (*reserves_get)(void *cls, 2308 (*reserves_get)(void *cls,
2350 struct TALER_EXCHANGEDB_Session *session,
2351 struct TALER_EXCHANGEDB_Reserve *reserve); 2309 struct TALER_EXCHANGEDB_Reserve *reserve);
2352 2310
2353 2311
@@ -2356,7 +2314,6 @@ struct TALER_EXCHANGEDB_Plugin
2356 * also created through this function. 2314 * also created through this function.
2357 * 2315 *
2358 * @param cls the @e cls of this struct with the plugin-specific state 2316 * @param cls the @e cls of this struct with the plugin-specific state
2359 * @param session the database session handle
2360 * @param reserve_pub public key of the reserve 2317 * @param reserve_pub public key of the reserve
2361 * @param balance the amount that has to be added to the reserve 2318 * @param balance the amount that has to be added to the reserve
2362 * @param execution_time when was the amount added 2319 * @param execution_time when was the amount added
@@ -2366,7 +2323,6 @@ struct TALER_EXCHANGEDB_Plugin
2366 */ 2323 */
2367 enum GNUNET_DB_QueryStatus 2324 enum GNUNET_DB_QueryStatus
2368 (*reserves_in_insert)(void *cls, 2325 (*reserves_in_insert)(void *cls,
2369 struct TALER_EXCHANGEDB_Session *session,
2370 const struct TALER_ReservePublicKeyP *reserve_pub, 2326 const struct TALER_ReservePublicKeyP *reserve_pub,
2371 const struct TALER_Amount *balance, 2327 const struct TALER_Amount *balance,
2372 struct GNUNET_TIME_Absolute execution_time, 2328 struct GNUNET_TIME_Absolute execution_time,
@@ -2380,7 +2336,6 @@ struct TALER_EXCHANGEDB_Plugin
2380 * Used by the wirewatch process when resuming. 2336 * Used by the wirewatch process when resuming.
2381 * 2337 *
2382 * @param cls the @e cls of this struct with the plugin-specific state 2338 * @param cls the @e cls of this struct with the plugin-specific state
2383 * @param session the database connection handle
2384 * @param exchange_account_name name of the section in the exchange's configuration 2339 * @param exchange_account_name name of the section in the exchange's configuration
2385 * for the account that we are tracking here 2340 * for the account that we are tracking here
2386 * @param[out] wire_reference set to unique reference identifying the wire transfer 2341 * @param[out] wire_reference set to unique reference identifying the wire transfer
@@ -2388,7 +2343,6 @@ struct TALER_EXCHANGEDB_Plugin
2388 */ 2343 */
2389 enum GNUNET_DB_QueryStatus 2344 enum GNUNET_DB_QueryStatus
2390 (*get_latest_reserve_in_reference)(void *cls, 2345 (*get_latest_reserve_in_reference)(void *cls,
2391 struct TALER_EXCHANGEDB_Session *session,
2392 const char *exchange_account_name, 2346 const char *exchange_account_name,
2393 uint64_t *wire_reference); 2347 uint64_t *wire_reference);
2394 2348
@@ -2399,7 +2353,6 @@ struct TALER_EXCHANGEDB_Plugin
2399 * idempotency of the request. 2353 * idempotency of the request.
2400 * 2354 *
2401 * @param cls the @e cls of this struct with the plugin-specific state 2355 * @param cls the @e cls of this struct with the plugin-specific state
2402 * @param session database connection to use
2403 * @param h_blind hash of the blinded coin to be signed (will match 2356 * @param h_blind hash of the blinded coin to be signed (will match
2404 * `h_coin_envelope` in the @a collectable to be returned) 2357 * `h_coin_envelope` in the @a collectable to be returned)
2405 * @param collectable corresponding collectable coin (blind signature) 2358 * @param collectable corresponding collectable coin (blind signature)
@@ -2408,7 +2361,6 @@ struct TALER_EXCHANGEDB_Plugin
2408 */ 2361 */
2409 enum GNUNET_DB_QueryStatus 2362 enum GNUNET_DB_QueryStatus
2410 (*get_withdraw_info)(void *cls, 2363 (*get_withdraw_info)(void *cls,
2411 struct TALER_EXCHANGEDB_Session *session,
2412 const struct GNUNET_HashCode *h_blind, 2364 const struct GNUNET_HashCode *h_blind,
2413 struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable); 2365 struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable);
2414 2366
@@ -2418,16 +2370,14 @@ struct TALER_EXCHANGEDB_Plugin
2418 * message. 2370 * message.
2419 * 2371 *
2420 * @param cls the @e cls of this struct with the plugin-specific state 2372 * @param cls the @e cls of this struct with the plugin-specific state
2421 * @param session database connection to use
2422 * @param collectable corresponding collectable coin (blind signature) 2373 * @param collectable corresponding collectable coin (blind signature)
2423 * if a coin is found 2374 * if a coin is found
2424 * @return statement execution status 2375 * @return statement execution status
2425 */ 2376 */
2426 enum GNUNET_DB_QueryStatus 2377 enum GNUNET_DB_QueryStatus
2427 (*insert_withdraw_info)(void *cls, 2378 (*insert_withdraw_info)(
2428 struct TALER_EXCHANGEDB_Session *session, 2379 void *cls,
2429 const struct 2380 const struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable);
2430 TALER_EXCHANGEDB_CollectableBlindcoin *collectable);
2431 2381
2432 2382
2433 /** 2383 /**
@@ -2435,14 +2385,12 @@ struct TALER_EXCHANGEDB_Plugin
2435 * reserve. 2385 * reserve.
2436 * 2386 *
2437 * @param cls the @e cls of this struct with the plugin-specific state 2387 * @param cls the @e cls of this struct with the plugin-specific state
2438 * @param session connection to use
2439 * @param reserve_pub public key of the reserve 2388 * @param reserve_pub public key of the reserve
2440 * @param[out] rhp set to known transaction history (NULL if reserve is unknown) 2389 * @param[out] rhp set to known transaction history (NULL if reserve is unknown)
2441 * @return transaction status 2390 * @return transaction status
2442 */ 2391 */
2443 enum GNUNET_DB_QueryStatus 2392 enum GNUNET_DB_QueryStatus
2444 (*get_reserve_history)(void *cls, 2393 (*get_reserve_history)(void *cls,
2445 struct TALER_EXCHANGEDB_Session *session,
2446 const struct TALER_ReservePublicKeyP *reserve_pub, 2394 const struct TALER_ReservePublicKeyP *reserve_pub,
2447 struct TALER_EXCHANGEDB_ReserveHistory **rhp); 2395 struct TALER_EXCHANGEDB_ReserveHistory **rhp);
2448 2396
@@ -2462,13 +2410,11 @@ struct TALER_EXCHANGEDB_Plugin
2462 * Count the number of known coins by denomination. 2410 * Count the number of known coins by denomination.
2463 * 2411 *
2464 * @param cls database connection plugin state 2412 * @param cls database connection plugin state
2465 * @param session database session
2466 * @param denom_pub_hash denomination to count by 2413 * @param denom_pub_hash denomination to count by
2467 * @return number of coins if non-negative, otherwise an `enum GNUNET_DB_QueryStatus` 2414 * @return number of coins if non-negative, otherwise an `enum GNUNET_DB_QueryStatus`
2468 */ 2415 */
2469 long long 2416 long long
2470 (*count_known_coins) (void *cls, 2417 (*count_known_coins) (void *cls,
2471 struct TALER_EXCHANGEDB_Session *session,
2472 const struct GNUNET_HashCode *denom_pub_hash); 2418 const struct GNUNET_HashCode *denom_pub_hash);
2473 2419
2474 2420
@@ -2476,7 +2422,6 @@ struct TALER_EXCHANGEDB_Plugin
2476 * Make sure the given @a coin is known to the database. 2422 * Make sure the given @a coin is known to the database.
2477 * 2423 *
2478 * @param cls database connection plugin state 2424 * @param cls database connection plugin state
2479 * @param session database session
2480 * @param coin the coin that must be made known 2425 * @param coin the coin that must be made known
2481 * @return database transaction status, non-negative on success 2426 * @return database transaction status, non-negative on success
2482 */ 2427 */
@@ -2508,7 +2453,6 @@ struct TALER_EXCHANGEDB_Plugin
2508 TALER_EXCHANGEDB_CKS_CONFLICT = -3, 2453 TALER_EXCHANGEDB_CKS_CONFLICT = -3,
2509 } 2454 }
2510 (*ensure_coin_known)(void *cls, 2455 (*ensure_coin_known)(void *cls,
2511 struct TALER_EXCHANGEDB_Session *session,
2512 const struct TALER_CoinPublicInfo *coin); 2456 const struct TALER_CoinPublicInfo *coin);
2513 2457
2514 2458
@@ -2516,13 +2460,11 @@ struct TALER_EXCHANGEDB_Plugin
2516 * Retrieve information about the given @a coin from the database. 2460 * Retrieve information about the given @a coin from the database.
2517 * 2461 *
2518 * @param cls database connection plugin state 2462 * @param cls database connection plugin state
2519 * @param session database session
2520 * @param coin the coin that must be made known 2463 * @param coin the coin that must be made known
2521 * @return database transaction status, non-negative on success 2464 * @return database transaction status, non-negative on success
2522 */ 2465 */
2523 enum GNUNET_DB_QueryStatus 2466 enum GNUNET_DB_QueryStatus
2524 (*get_known_coin)(void *cls, 2467 (*get_known_coin)(void *cls,
2525 struct TALER_EXCHANGEDB_Session *session,
2526 const struct TALER_CoinSpendPublicKeyP *coin_pub, 2468 const struct TALER_CoinSpendPublicKeyP *coin_pub,
2527 struct TALER_CoinPublicInfo *coin_info); 2469 struct TALER_CoinPublicInfo *coin_info);
2528 2470
@@ -2531,14 +2473,12 @@ struct TALER_EXCHANGEDB_Plugin
2531 * Retrieve the denomination of a known coin. 2473 * Retrieve the denomination of a known coin.
2532 * 2474 *
2533 * @param cls the plugin closure 2475 * @param cls the plugin closure
2534 * @param session the database session handle
2535 * @param coin_pub the public key of the coin to search for 2476 * @param coin_pub the public key of the coin to search for
2536 * @param[out] denom_hash where to store the hash of the coins denomination 2477 * @param[out] denom_hash where to store the hash of the coins denomination
2537 * @return transaction status code 2478 * @return transaction status code
2538 */ 2479 */
2539 enum GNUNET_DB_QueryStatus 2480 enum GNUNET_DB_QueryStatus
2540 (*get_coin_denomination)(void *cls, 2481 (*get_coin_denomination)(void *cls,
2541 struct TALER_EXCHANGEDB_Session *session,
2542 const struct TALER_CoinSpendPublicKeyP *coin_pub, 2482 const struct TALER_CoinSpendPublicKeyP *coin_pub,
2543 struct GNUNET_HashCode *denom_hash); 2483 struct GNUNET_HashCode *denom_hash);
2544 2484
@@ -2547,7 +2487,6 @@ struct TALER_EXCHANGEDB_Plugin
2547 * Check if we have the specified deposit already in the database. 2487 * Check if we have the specified deposit already in the database.
2548 * 2488 *
2549 * @param cls the @e cls of this struct with the plugin-specific state 2489 * @param cls the @e cls of this struct with the plugin-specific state
2550 * @param session database connection
2551 * @param deposit deposit to search for 2490 * @param deposit deposit to search for
2552 * @param check_extras whether to check extra fields or not 2491 * @param check_extras whether to check extra fields or not
2553 * @param[out] deposit_fee set to the deposit fee the exchange charged 2492 * @param[out] deposit_fee set to the deposit fee the exchange charged
@@ -2558,7 +2497,6 @@ struct TALER_EXCHANGEDB_Plugin
2558 */ 2497 */
2559 enum GNUNET_DB_QueryStatus 2498 enum GNUNET_DB_QueryStatus
2560 (*have_deposit)(void *cls, 2499 (*have_deposit)(void *cls,
2561 struct TALER_EXCHANGEDB_Session *session,
2562 const struct TALER_EXCHANGEDB_Deposit *deposit, 2500 const struct TALER_EXCHANGEDB_Deposit *deposit,
2563 int check_extras, 2501 int check_extras,
2564 struct TALER_Amount *deposit_fee, 2502 struct TALER_Amount *deposit_fee,
@@ -2569,14 +2507,12 @@ struct TALER_EXCHANGEDB_Plugin
2569 * Insert information about deposited coin into the database. 2507 * Insert information about deposited coin into the database.
2570 * 2508 *
2571 * @param cls the @e cls of this struct with the plugin-specific state 2509 * @param cls the @e cls of this struct with the plugin-specific state
2572 * @param session connection to the database
2573 * @param exchange_timestamp time the exchange received the deposit request 2510 * @param exchange_timestamp time the exchange received the deposit request
2574 * @param deposit deposit information to store 2511 * @param deposit deposit information to store
2575 * @return query result status 2512 * @return query result status
2576 */ 2513 */
2577 enum GNUNET_DB_QueryStatus 2514 enum GNUNET_DB_QueryStatus
2578 (*insert_deposit)(void *cls, 2515 (*insert_deposit)(void *cls,
2579 struct TALER_EXCHANGEDB_Session *session,
2580 struct GNUNET_TIME_Absolute exchange_timestamp, 2516 struct GNUNET_TIME_Absolute exchange_timestamp,
2581 const struct TALER_EXCHANGEDB_Deposit *deposit); 2517 const struct TALER_EXCHANGEDB_Deposit *deposit);
2582 2518
@@ -2585,13 +2521,11 @@ struct TALER_EXCHANGEDB_Plugin
2585 * Insert information about refunded coin into the database. 2521 * Insert information about refunded coin into the database.
2586 * 2522 *
2587 * @param cls the @e cls of this struct with the plugin-specific state 2523 * @param cls the @e cls of this struct with the plugin-specific state
2588 * @param session connection to the database
2589 * @param refund refund information to store 2524 * @param refund refund information to store
2590 * @return query result status 2525 * @return query result status
2591 */ 2526 */
2592 enum GNUNET_DB_QueryStatus 2527 enum GNUNET_DB_QueryStatus
2593 (*insert_refund)(void *cls, 2528 (*insert_refund)(void *cls,
2594 struct TALER_EXCHANGEDB_Session *session,
2595 const struct TALER_EXCHANGEDB_Refund *refund); 2529 const struct TALER_EXCHANGEDB_Refund *refund);
2596 2530
2597 2531
@@ -2599,7 +2533,6 @@ struct TALER_EXCHANGEDB_Plugin
2599 * Select refunds by @a coin_pub, @a merchant_pub and @a h_contract. 2533 * Select refunds by @a coin_pub, @a merchant_pub and @a h_contract.
2600 * 2534 *
2601 * @param cls closure of plugin 2535 * @param cls closure of plugin
2602 * @param session database handle to use
2603 * @param coin_pub coin to get refunds for 2536 * @param coin_pub coin to get refunds for
2604 * @param merchant_pub merchant to get refunds for 2537 * @param merchant_pub merchant to get refunds for
2605 * @param h_contract_pub contract (hash) to get refunds for 2538 * @param h_contract_pub contract (hash) to get refunds for
@@ -2609,7 +2542,6 @@ struct TALER_EXCHANGEDB_Plugin
2609 */ 2542 */
2610 enum GNUNET_DB_QueryStatus 2543 enum GNUNET_DB_QueryStatus
2611 (*select_refunds_by_coin)(void *cls, 2544 (*select_refunds_by_coin)(void *cls,
2612 struct TALER_EXCHANGEDB_Session *session,
2613 const struct TALER_CoinSpendPublicKeyP *coin_pub, 2545 const struct TALER_CoinSpendPublicKeyP *coin_pub,
2614 const struct TALER_MerchantPublicKeyP *merchant_pub, 2546 const struct TALER_MerchantPublicKeyP *merchant_pub,
2615 const struct GNUNET_HashCode *h_contract, 2547 const struct GNUNET_HashCode *h_contract,
@@ -2623,13 +2555,11 @@ struct TALER_EXCHANGEDB_Plugin
2623 * returned by @e iterate_ready_deposits() 2555 * returned by @e iterate_ready_deposits()
2624 * 2556 *
2625 * @param cls the @e cls of this struct with the plugin-specific state 2557 * @param cls the @e cls of this struct with the plugin-specific state
2626 * @param session connection to the database
2627 * @param deposit_rowid identifies the deposit row to modify 2558 * @param deposit_rowid identifies the deposit row to modify
2628 * @return query result status 2559 * @return query result status
2629 */ 2560 */
2630 enum GNUNET_DB_QueryStatus 2561 enum GNUNET_DB_QueryStatus
2631 (*mark_deposit_tiny)(void *cls, 2562 (*mark_deposit_tiny)(void *cls,
2632 struct TALER_EXCHANGEDB_Session *session,
2633 uint64_t rowid); 2563 uint64_t rowid);
2634 2564
2635 2565
@@ -2638,7 +2568,6 @@ struct TALER_EXCHANGEDB_Plugin
2638 * cannot be refunded anymore. 2568 * cannot be refunded anymore.
2639 * 2569 *
2640 * @param cls the @e cls of this struct with the plugin-specific state 2570 * @param cls the @e cls of this struct with the plugin-specific state
2641 * @param session connection to the database
2642 * @param coin_pub the coin to check for deposit 2571 * @param coin_pub the coin to check for deposit
2643 * @param merchant_pub merchant to receive the deposit 2572 * @param merchant_pub merchant to receive the deposit
2644 * @param h_contract_terms contract terms of the deposit 2573 * @param h_contract_terms contract terms of the deposit
@@ -2649,7 +2578,6 @@ struct TALER_EXCHANGEDB_Plugin
2649 */ 2578 */
2650 enum GNUNET_DB_QueryStatus 2579 enum GNUNET_DB_QueryStatus
2651 (*test_deposit_done)(void *cls, 2580 (*test_deposit_done)(void *cls,
2652 struct TALER_EXCHANGEDB_Session *session,
2653 const struct TALER_CoinSpendPublicKeyP *coin_pub, 2581 const struct TALER_CoinSpendPublicKeyP *coin_pub,
2654 const struct TALER_MerchantPublicKeyP *merchant_pub, 2582 const struct TALER_MerchantPublicKeyP *merchant_pub,
2655 const struct GNUNET_HashCode *h_contract_terms, 2583 const struct GNUNET_HashCode *h_contract_terms,
@@ -2662,13 +2590,11 @@ struct TALER_EXCHANGEDB_Plugin
2662 * @e iterate_ready_deposits() or @e iterate_matching_deposits(). 2590 * @e iterate_ready_deposits() or @e iterate_matching_deposits().
2663 * 2591 *
2664 * @param cls the @e cls of this struct with the plugin-specific state 2592 * @param cls the @e cls of this struct with the plugin-specific state
2665 * @param session connection to the database
2666 * @param deposit_rowid identifies the deposit row to modify 2593 * @param deposit_rowid identifies the deposit row to modify
2667 * @return query result status 2594 * @return query result status
2668 */ 2595 */
2669 enum GNUNET_DB_QueryStatus 2596 enum GNUNET_DB_QueryStatus
2670 (*mark_deposit_done)(void *cls, 2597 (*mark_deposit_done)(void *cls,
2671 struct TALER_EXCHANGEDB_Session *session,
2672 uint64_t rowid); 2598 uint64_t rowid);
2673 2599
2674 2600
@@ -2678,14 +2604,12 @@ struct TALER_EXCHANGEDB_Plugin
2678 * execution time and refund deadlines must both be in the past. 2604 * execution time and refund deadlines must both be in the past.
2679 * 2605 *
2680 * @param cls the @e cls of this struct with the plugin-specific state 2606 * @param cls the @e cls of this struct with the plugin-specific state
2681 * @param session connection to the database
2682 * @param deposit_cb function to call for ONE such deposit 2607 * @param deposit_cb function to call for ONE such deposit
2683 * @param deposit_cb_cls closure for @a deposit_cb 2608 * @param deposit_cb_cls closure for @a deposit_cb
2684 * @return transaction status code 2609 * @return transaction status code
2685 */ 2610 */
2686 enum GNUNET_DB_QueryStatus 2611 enum GNUNET_DB_QueryStatus
2687 (*get_ready_deposit)(void *cls, 2612 (*get_ready_deposit)(void *cls,
2688 struct TALER_EXCHANGEDB_Session *session,
2689 TALER_EXCHANGEDB_DepositIterator deposit_cb, 2613 TALER_EXCHANGEDB_DepositIterator deposit_cb,
2690 void *deposit_cb_cls); 2614 void *deposit_cb_cls);
2691 2615
@@ -2705,7 +2629,6 @@ struct TALER_EXCHANGEDB_Plugin
2705 * destination. Those deposits must not already be "done". 2629 * destination. Those deposits must not already be "done".
2706 * 2630 *
2707 * @param cls the @e cls of this struct with the plugin-specific state 2631 * @param cls the @e cls of this struct with the plugin-specific state
2708 * @param session connection to the database
2709 * @param h_wire destination of the wire transfer 2632 * @param h_wire destination of the wire transfer
2710 * @param merchant_pub public key of the merchant 2633 * @param merchant_pub public key of the merchant
2711 * @param deposit_cb function to call for each deposit 2634 * @param deposit_cb function to call for each deposit
@@ -2719,7 +2642,6 @@ struct TALER_EXCHANGEDB_Plugin
2719 enum GNUNET_DB_QueryStatus 2642 enum GNUNET_DB_QueryStatus
2720 (*iterate_matching_deposits)( 2643 (*iterate_matching_deposits)(
2721 void *cls, 2644 void *cls,
2722 struct TALER_EXCHANGEDB_Session *session,
2723 const struct GNUNET_HashCode *h_wire, 2645 const struct GNUNET_HashCode *h_wire,
2724 const struct TALER_MerchantPublicKeyP *merchant_pub, 2646 const struct TALER_MerchantPublicKeyP *merchant_pub,
2725 TALER_EXCHANGEDB_MatchingDepositIterator deposit_cb, 2647 TALER_EXCHANGEDB_MatchingDepositIterator deposit_cb,
@@ -2731,13 +2653,11 @@ struct TALER_EXCHANGEDB_Plugin
2731 * Store new melt commitment data. 2653 * Store new melt commitment data.
2732 * 2654 *
2733 * @param cls the @e cls of this struct with the plugin-specific state 2655 * @param cls the @e cls of this struct with the plugin-specific state
2734 * @param session database handle to use
2735 * @param refresh_session operational data to store 2656 * @param refresh_session operational data to store
2736 * @return query status for the transaction 2657 * @return query status for the transaction
2737 */ 2658 */
2738 enum GNUNET_DB_QueryStatus 2659 enum GNUNET_DB_QueryStatus
2739 (*insert_melt)(void *cls, 2660 (*insert_melt)(void *cls,
2740 struct TALER_EXCHANGEDB_Session *session,
2741 const struct TALER_EXCHANGEDB_Refresh *refresh_session); 2661 const struct TALER_EXCHANGEDB_Refresh *refresh_session);
2742 2662
2743 2663
@@ -2745,7 +2665,6 @@ struct TALER_EXCHANGEDB_Plugin
2745 * Lookup melt commitment data under the given @a rc. 2665 * Lookup melt commitment data under the given @a rc.
2746 * 2666 *
2747 * @param cls the @e cls of this struct with the plugin-specific state 2667 * @param cls the @e cls of this struct with the plugin-specific state
2748 * @param session database handle to use
2749 * @param rc commitment to use for the lookup 2668 * @param rc commitment to use for the lookup
2750 * @param[out] melt where to store the result; note that 2669 * @param[out] melt where to store the result; note that
2751 * melt->session.coin.denom_sig will be set to NULL 2670 * melt->session.coin.denom_sig will be set to NULL
@@ -2754,7 +2673,6 @@ struct TALER_EXCHANGEDB_Plugin
2754 */ 2673 */
2755 enum GNUNET_DB_QueryStatus 2674 enum GNUNET_DB_QueryStatus
2756 (*get_melt)(void *cls, 2675 (*get_melt)(void *cls,
2757 struct TALER_EXCHANGEDB_Session *session,
2758 const struct TALER_RefreshCommitmentP *rc, 2676 const struct TALER_RefreshCommitmentP *rc,
2759 struct TALER_EXCHANGEDB_Melt *melt); 2677 struct TALER_EXCHANGEDB_Melt *melt);
2760 2678
@@ -2764,7 +2682,6 @@ struct TALER_EXCHANGEDB_Plugin
2764 * @a rc. 2682 * @a rc.
2765 * 2683 *
2766 * @param cls the `struct PostgresClosure` with the plugin-specific state 2684 * @param cls the `struct PostgresClosure` with the plugin-specific state
2767 * @param session database handle to use
2768 * @param rc commitment hash to use to locate the operation 2685 * @param rc commitment hash to use to locate the operation
2769 * @param[out] noreveal_index returns the "gamma" value selected by the 2686 * @param[out] noreveal_index returns the "gamma" value selected by the
2770 * exchange which is the index of the transfer key that is 2687 * exchange which is the index of the transfer key that is
@@ -2773,7 +2690,6 @@ struct TALER_EXCHANGEDB_Plugin
2773 */ 2690 */
2774 enum GNUNET_DB_QueryStatus 2691 enum GNUNET_DB_QueryStatus
2775 (*get_melt_index)(void *cls, 2692 (*get_melt_index)(void *cls,
2776 struct TALER_EXCHANGEDB_Session *session,
2777 const struct TALER_RefreshCommitmentP *rc, 2693 const struct TALER_RefreshCommitmentP *rc,
2778 uint32_t *noreveal_index); 2694 uint32_t *noreveal_index);
2779 2695
@@ -2784,7 +2700,6 @@ struct TALER_EXCHANGEDB_Plugin
2784 * we learned or created in the reveal step. 2700 * we learned or created in the reveal step.
2785 * 2701 *
2786 * @param cls the @e cls of this struct with the plugin-specific state 2702 * @param cls the @e cls of this struct with the plugin-specific state
2787 * @param session database connection
2788 * @param rc identify commitment and thus refresh operation 2703 * @param rc identify commitment and thus refresh operation
2789 * @param num_rrcs number of coins to generate, size of the @a rrcs array 2704 * @param num_rrcs number of coins to generate, size of the @a rrcs array
2790 * @param rrcs information about the new coins 2705 * @param rrcs information about the new coins
@@ -2796,7 +2711,6 @@ struct TALER_EXCHANGEDB_Plugin
2796 enum GNUNET_DB_QueryStatus 2711 enum GNUNET_DB_QueryStatus
2797 (*insert_refresh_reveal)( 2712 (*insert_refresh_reveal)(
2798 void *cls, 2713 void *cls,
2799 struct TALER_EXCHANGEDB_Session *session,
2800 const struct TALER_RefreshCommitmentP *rc, 2714 const struct TALER_RefreshCommitmentP *rc,
2801 uint32_t num_rrcs, 2715 uint32_t num_rrcs,
2802 const struct TALER_EXCHANGEDB_RefreshRevealedCoin *rrcs, 2716 const struct TALER_EXCHANGEDB_RefreshRevealedCoin *rrcs,
@@ -2810,7 +2724,6 @@ struct TALER_EXCHANGEDB_Plugin
2810 * created in the given refresh operation. 2724 * created in the given refresh operation.
2811 * 2725 *
2812 * @param cls the @e cls of this struct with the plugin-specific state 2726 * @param cls the @e cls of this struct with the plugin-specific state
2813 * @param session database connection
2814 * @param rc identify commitment and thus refresh operation 2727 * @param rc identify commitment and thus refresh operation
2815 * @param cb function to call with the results 2728 * @param cb function to call with the results
2816 * @param cb_cls closure for @a cb 2729 * @param cb_cls closure for @a cb
@@ -2818,7 +2731,6 @@ struct TALER_EXCHANGEDB_Plugin
2818 */ 2731 */
2819 enum GNUNET_DB_QueryStatus 2732 enum GNUNET_DB_QueryStatus
2820 (*get_refresh_reveal)(void *cls, 2733 (*get_refresh_reveal)(void *cls,
2821 struct TALER_EXCHANGEDB_Session *session,
2822 const struct TALER_RefreshCommitmentP *rc, 2734 const struct TALER_RefreshCommitmentP *rc,
2823 TALER_EXCHANGEDB_RefreshCallback cb, 2735 TALER_EXCHANGEDB_RefreshCallback cb,
2824 void *cb_cls); 2736 void *cb_cls);
@@ -2831,7 +2743,6 @@ struct TALER_EXCHANGEDB_Plugin
2831 * the private keys of the new coins after the melt. 2743 * the private keys of the new coins after the melt.
2832 * 2744 *
2833 * @param cls the @e cls of this struct with the plugin-specific state 2745 * @param cls the @e cls of this struct with the plugin-specific state
2834 * @param session database connection
2835 * @param coin_pub public key of the coin 2746 * @param coin_pub public key of the coin
2836 * @param ldc function to call for each session the coin was melted into 2747 * @param ldc function to call for each session the coin was melted into
2837 * @param ldc_cls closure for @a tdc 2748 * @param ldc_cls closure for @a tdc
@@ -2839,7 +2750,6 @@ struct TALER_EXCHANGEDB_Plugin
2839 */ 2750 */
2840 enum GNUNET_DB_QueryStatus 2751 enum GNUNET_DB_QueryStatus
2841 (*get_link_data)(void *cls, 2752 (*get_link_data)(void *cls,
2842 struct TALER_EXCHANGEDB_Session *session,
2843 const struct TALER_CoinSpendPublicKeyP *coin_pub, 2753 const struct TALER_CoinSpendPublicKeyP *coin_pub,
2844 TALER_EXCHANGEDB_LinkCallback ldc, 2754 TALER_EXCHANGEDB_LinkCallback ldc,
2845 void *tdc_cls); 2755 void *tdc_cls);
@@ -2850,7 +2760,6 @@ struct TALER_EXCHANGEDB_Plugin
2850 * with the given coin (melt, refund, recoup and deposit operations). 2760 * with the given coin (melt, refund, recoup and deposit operations).
2851 * 2761 *
2852 * @param cls the @e cls of this struct with the plugin-specific state 2762 * @param cls the @e cls of this struct with the plugin-specific state
2853 * @param session database connection
2854 * @param coin_pub coin to investigate 2763 * @param coin_pub coin to investigate
2855 * @param include_recoup include recoup transactions of the coin? 2764 * @param include_recoup include recoup transactions of the coin?
2856 * @param[out] tlp set to list of transactions, NULL if coin is fresh 2765 * @param[out] tlp set to list of transactions, NULL if coin is fresh
@@ -2858,7 +2767,6 @@ struct TALER_EXCHANGEDB_Plugin
2858 */ 2767 */
2859 enum GNUNET_DB_QueryStatus 2768 enum GNUNET_DB_QueryStatus
2860 (*get_coin_transactions)(void *cls, 2769 (*get_coin_transactions)(void *cls,
2861 struct TALER_EXCHANGEDB_Session *session,
2862 const struct TALER_CoinSpendPublicKeyP *coin_pub, 2770 const struct TALER_CoinSpendPublicKeyP *coin_pub,
2863 int include_recoup, 2771 int include_recoup,
2864 struct TALER_EXCHANGEDB_TransactionList **tlp); 2772 struct TALER_EXCHANGEDB_TransactionList **tlp);
@@ -2880,7 +2788,6 @@ struct TALER_EXCHANGEDB_Plugin
2880 * into a wire transfer by the respective @a raw_wtid. 2788 * into a wire transfer by the respective @a raw_wtid.
2881 * 2789 *
2882 * @param cls the @e cls of this struct with the plugin-specific state 2790 * @param cls the @e cls of this struct with the plugin-specific state
2883 * @param session database connection
2884 * @param wtid the raw wire transfer identifier we used 2791 * @param wtid the raw wire transfer identifier we used
2885 * @param cb function to call on each transaction found 2792 * @param cb function to call on each transaction found
2886 * @param cb_cls closure for @a cb 2793 * @param cb_cls closure for @a cb
@@ -2888,7 +2795,6 @@ struct TALER_EXCHANGEDB_Plugin
2888 */ 2795 */
2889 enum GNUNET_DB_QueryStatus 2796 enum GNUNET_DB_QueryStatus
2890 (*lookup_wire_transfer)(void *cls, 2797 (*lookup_wire_transfer)(void *cls,
2891 struct TALER_EXCHANGEDB_Session *session,
2892 const struct TALER_WireTransferIdentifierRawP *wtid, 2798 const struct TALER_WireTransferIdentifierRawP *wtid,
2893 TALER_EXCHANGEDB_AggregationDataCallback cb, 2799 TALER_EXCHANGEDB_AggregationDataCallback cb,
2894 void *cb_cls); 2800 void *cb_cls);
@@ -2900,7 +2806,6 @@ struct TALER_EXCHANGEDB_Plugin
2900 * to be executed. 2806 * to be executed.
2901 * 2807 *
2902 * @param cls closure 2808 * @param cls closure
2903 * @param session database connection
2904 * @param h_contract_terms hash of the proposal data 2809 * @param h_contract_terms hash of the proposal data
2905 * @param h_wire hash of merchant wire details 2810 * @param h_wire hash of merchant wire details
2906 * @param coin_pub public key of deposited coin 2811 * @param coin_pub public key of deposited coin
@@ -2912,7 +2817,6 @@ struct TALER_EXCHANGEDB_Plugin
2912 enum GNUNET_DB_QueryStatus 2817 enum GNUNET_DB_QueryStatus
2913 (*lookup_transfer_by_deposit)( 2818 (*lookup_transfer_by_deposit)(
2914 void *cls, 2819 void *cls,
2915 struct TALER_EXCHANGEDB_Session *session,
2916 const struct GNUNET_HashCode *h_contract_terms, 2820 const struct GNUNET_HashCode *h_contract_terms,
2917 const struct GNUNET_HashCode *h_wire, 2821 const struct GNUNET_HashCode *h_wire,
2918 const struct TALER_CoinSpendPublicKeyP *coin_pub, 2822 const struct TALER_CoinSpendPublicKeyP *coin_pub,
@@ -2925,7 +2829,6 @@ struct TALER_EXCHANGEDB_Plugin
2925 * Function called to insert aggregation information into the DB. 2829 * Function called to insert aggregation information into the DB.
2926 * 2830 *
2927 * @param cls closure 2831 * @param cls closure
2928 * @param session database connection
2929 * @param wtid the raw wire transfer identifier we used 2832 * @param wtid the raw wire transfer identifier we used
2930 * @param deposit_serial_id row in the deposits table for which this is aggregation data 2833 * @param deposit_serial_id row in the deposits table for which this is aggregation data
2931 * @return transaction status code 2834 * @return transaction status code
@@ -2933,7 +2836,6 @@ struct TALER_EXCHANGEDB_Plugin
2933 enum GNUNET_DB_QueryStatus 2836 enum GNUNET_DB_QueryStatus
2934 (*insert_aggregation_tracking)( 2837 (*insert_aggregation_tracking)(
2935 void *cls, 2838 void *cls,
2936 struct TALER_EXCHANGEDB_Session *session,
2937 const struct TALER_WireTransferIdentifierRawP *wtid, 2839 const struct TALER_WireTransferIdentifierRawP *wtid,
2938 unsigned long long deposit_serial_id); 2840 unsigned long long deposit_serial_id);
2939 2841
@@ -2942,7 +2844,6 @@ struct TALER_EXCHANGEDB_Plugin
2942 * Insert wire transfer fee into database. 2844 * Insert wire transfer fee into database.
2943 * 2845 *
2944 * @param cls closure 2846 * @param cls closure
2945 * @param session database connection
2946 * @param wire_method which wire method is the fee about? 2847 * @param wire_method which wire method is the fee about?
2947 * @param start_date when does the fee go into effect 2848 * @param start_date when does the fee go into effect
2948 * @param end_date when does the fee end being valid 2849 * @param end_date when does the fee end being valid
@@ -2953,7 +2854,6 @@ struct TALER_EXCHANGEDB_Plugin
2953 */ 2854 */
2954 enum GNUNET_DB_QueryStatus 2855 enum GNUNET_DB_QueryStatus
2955 (*insert_wire_fee)(void *cls, 2856 (*insert_wire_fee)(void *cls,
2956 struct TALER_EXCHANGEDB_Session *session,
2957 const char *wire_method, 2857 const char *wire_method,
2958 struct GNUNET_TIME_Absolute start_date, 2858 struct GNUNET_TIME_Absolute start_date,
2959 struct GNUNET_TIME_Absolute end_date, 2859 struct GNUNET_TIME_Absolute end_date,
@@ -2966,7 +2866,6 @@ struct TALER_EXCHANGEDB_Plugin
2966 * Obtain wire fee from database. 2866 * Obtain wire fee from database.
2967 * 2867 *
2968 * @param cls closure 2868 * @param cls closure
2969 * @param session database connection
2970 * @param type type of wire transfer the fee applies for 2869 * @param type type of wire transfer the fee applies for
2971 * @param date for which date do we want the fee? 2870 * @param date for which date do we want the fee?
2972 * @param[out] start_date when does the fee go into effect 2871 * @param[out] start_date when does the fee go into effect
@@ -2978,7 +2877,6 @@ struct TALER_EXCHANGEDB_Plugin
2978 */ 2877 */
2979 enum GNUNET_DB_QueryStatus 2878 enum GNUNET_DB_QueryStatus
2980 (*get_wire_fee)(void *cls, 2879 (*get_wire_fee)(void *cls,
2981 struct TALER_EXCHANGEDB_Session *session,
2982 const char *type, 2880 const char *type,
2983 struct GNUNET_TIME_Absolute date, 2881 struct GNUNET_TIME_Absolute date,
2984 struct GNUNET_TIME_Absolute *start_date, 2882 struct GNUNET_TIME_Absolute *start_date,
@@ -2993,7 +2891,6 @@ struct TALER_EXCHANGEDB_Plugin
2993 * remaining balances. 2891 * remaining balances.
2994 * 2892 *
2995 * @param cls closure of the plugin 2893 * @param cls closure of the plugin
2996 * @param session database connection
2997 * @param now timestamp based on which we decide expiration 2894 * @param now timestamp based on which we decide expiration
2998 * @param rec function to call on expired reserves 2895 * @param rec function to call on expired reserves
2999 * @param rec_cls closure for @a rec 2896 * @param rec_cls closure for @a rec
@@ -3001,7 +2898,6 @@ struct TALER_EXCHANGEDB_Plugin
3001 */ 2898 */
3002 enum GNUNET_DB_QueryStatus 2899 enum GNUNET_DB_QueryStatus
3003 (*get_expired_reserves)(void *cls, 2900 (*get_expired_reserves)(void *cls,
3004 struct TALER_EXCHANGEDB_Session *session,
3005 struct GNUNET_TIME_Absolute now, 2901 struct GNUNET_TIME_Absolute now,
3006 TALER_EXCHANGEDB_ReserveExpiredCallback rec, 2902 TALER_EXCHANGEDB_ReserveExpiredCallback rec,
3007 void *rec_cls); 2903 void *rec_cls);
@@ -3011,7 +2907,6 @@ struct TALER_EXCHANGEDB_Plugin
3011 * Insert reserve close operation into database. 2907 * Insert reserve close operation into database.
3012 * 2908 *
3013 * @param cls closure 2909 * @param cls closure
3014 * @param session database connection
3015 * @param reserve_pub which reserve is this about? 2910 * @param reserve_pub which reserve is this about?
3016 * @param execution_date when did we perform the transfer? 2911 * @param execution_date when did we perform the transfer?
3017 * @param receiver_account to which account do we transfer, in payto://-format 2912 * @param receiver_account to which account do we transfer, in payto://-format
@@ -3022,7 +2917,6 @@ struct TALER_EXCHANGEDB_Plugin
3022 */ 2917 */
3023 enum GNUNET_DB_QueryStatus 2918 enum GNUNET_DB_QueryStatus
3024 (*insert_reserve_closed)(void *cls, 2919 (*insert_reserve_closed)(void *cls,
3025 struct TALER_EXCHANGEDB_Session *session,
3026 const struct TALER_ReservePublicKeyP *reserve_pub, 2920 const struct TALER_ReservePublicKeyP *reserve_pub,
3027 struct GNUNET_TIME_Absolute execution_date, 2921 struct GNUNET_TIME_Absolute execution_date,
3028 const char *receiver_account, 2922 const char *receiver_account,
@@ -3035,7 +2929,6 @@ struct TALER_EXCHANGEDB_Plugin
3035 * Function called to insert wire transfer commit data into the DB. 2929 * Function called to insert wire transfer commit data into the DB.
3036 * 2930 *
3037 * @param cls closure 2931 * @param cls closure
3038 * @param session database connection
3039 * @param type type of the wire transfer (i.e. "iban") 2932 * @param type type of the wire transfer (i.e. "iban")
3040 * @param buf buffer with wire transfer preparation data 2933 * @param buf buffer with wire transfer preparation data
3041 * @param buf_size number of bytes in @a buf 2934 * @param buf_size number of bytes in @a buf
@@ -3043,7 +2936,6 @@ struct TALER_EXCHANGEDB_Plugin
3043 */ 2936 */
3044 enum GNUNET_DB_QueryStatus 2937 enum GNUNET_DB_QueryStatus
3045 (*wire_prepare_data_insert)(void *cls, 2938 (*wire_prepare_data_insert)(void *cls,
3046 struct TALER_EXCHANGEDB_Session *session,
3047 const char *type, 2939 const char *type,
3048 const char *buf, 2940 const char *buf,
3049 size_t buf_size); 2941 size_t buf_size);
@@ -3053,13 +2945,11 @@ struct TALER_EXCHANGEDB_Plugin
3053 * Function called to mark wire transfer commit data as finished. 2945 * Function called to mark wire transfer commit data as finished.
3054 * 2946 *
3055 * @param cls closure 2947 * @param cls closure
3056 * @param session database connection
3057 * @param rowid which entry to mark as finished 2948 * @param rowid which entry to mark as finished
3058 * @return transaction status code 2949 * @return transaction status code
3059 */ 2950 */
3060 enum GNUNET_DB_QueryStatus 2951 enum GNUNET_DB_QueryStatus
3061 (*wire_prepare_data_mark_finished)(void *cls, 2952 (*wire_prepare_data_mark_finished)(void *cls,
3062 struct TALER_EXCHANGEDB_Session *session,
3063 uint64_t rowid); 2953 uint64_t rowid);
3064 2954
3065 2955
@@ -3067,13 +2957,11 @@ struct TALER_EXCHANGEDB_Plugin
3067 * Function called to mark wire transfer as failed. 2957 * Function called to mark wire transfer as failed.
3068 * 2958 *
3069 * @param cls closure 2959 * @param cls closure
3070 * @param session database connection
3071 * @param rowid which entry to mark as failed 2960 * @param rowid which entry to mark as failed
3072 * @return transaction status code 2961 * @return transaction status code
3073 */ 2962 */
3074 enum GNUNET_DB_QueryStatus 2963 enum GNUNET_DB_QueryStatus
3075 (*wire_prepare_data_mark_failed)(void *cls, 2964 (*wire_prepare_data_mark_failed)(void *cls,
3076 struct TALER_EXCHANGEDB_Session *session,
3077 uint64_t rowid); 2965 uint64_t rowid);
3078 2966
3079 2967
@@ -3082,14 +2970,12 @@ struct TALER_EXCHANGEDB_Plugin
3082 * preparation data. Fetches at most one item. 2970 * preparation data. Fetches at most one item.
3083 * 2971 *
3084 * @param cls closure 2972 * @param cls closure
3085 * @param session database connection
3086 * @param cb function to call for ONE unfinished item 2973 * @param cb function to call for ONE unfinished item
3087 * @param cb_cls closure for @a cb 2974 * @param cb_cls closure for @a cb
3088 * @return transaction status code 2975 * @return transaction status code
3089 */ 2976 */
3090 enum GNUNET_DB_QueryStatus 2977 enum GNUNET_DB_QueryStatus
3091 (*wire_prepare_data_get)(void *cls, 2978 (*wire_prepare_data_get)(void *cls,
3092 struct TALER_EXCHANGEDB_Session *session,
3093 TALER_EXCHANGEDB_WirePreparationIterator cb, 2979 TALER_EXCHANGEDB_WirePreparationIterator cb,
3094 void *cb_cls); 2980 void *cb_cls);
3095 2981
@@ -3100,19 +2986,16 @@ struct TALER_EXCHANGEDB_Plugin
3100 * and only add the wire transfer out at the end. 2986 * and only add the wire transfer out at the end.
3101 * 2987 *
3102 * @param cls the @e cls of this struct with the plugin-specific state 2988 * @param cls the @e cls of this struct with the plugin-specific state
3103 * @param session connection to use
3104 * @return #GNUNET_OK on success 2989 * @return #GNUNET_OK on success
3105 */ 2990 */
3106 int 2991 int
3107 (*start_deferred_wire_out) (void *cls, 2992 (*start_deferred_wire_out) (void *cls);
3108 struct TALER_EXCHANGEDB_Session *session);
3109 2993
3110 2994
3111 /** 2995 /**
3112 * Store information about an outgoing wire transfer that was executed. 2996 * Store information about an outgoing wire transfer that was executed.
3113 * 2997 *
3114 * @param cls closure 2998 * @param cls closure
3115 * @param session database connection
3116 * @param date time of the wire transfer 2999 * @param date time of the wire transfer
3117 * @param wtid subject of the wire transfer 3000 * @param wtid subject of the wire transfer
3118 * @param wire_account details about the receiver account of the wire transfer, 3001 * @param wire_account details about the receiver account of the wire transfer,
@@ -3125,7 +3008,6 @@ struct TALER_EXCHANGEDB_Plugin
3125 enum GNUNET_DB_QueryStatus 3008 enum GNUNET_DB_QueryStatus
3126 (*store_wire_transfer_out)( 3009 (*store_wire_transfer_out)(
3127 void *cls, 3010 void *cls,
3128 struct TALER_EXCHANGEDB_Session *session,
3129 struct GNUNET_TIME_Absolute date, 3011 struct GNUNET_TIME_Absolute date,
3130 const struct TALER_WireTransferIdentifierRawP *wtid, 3012 const struct TALER_WireTransferIdentifierRawP *wtid,
3131 const json_t *wire_account, 3013 const json_t *wire_account,
@@ -3150,7 +3032,6 @@ struct TALER_EXCHANGEDB_Plugin
3150 * order. 3032 * order.
3151 * 3033 *
3152 * @param cls closure 3034 * @param cls closure
3153 * @param session database connection
3154 * @param serial_id highest serial ID to exclude (select strictly larger) 3035 * @param serial_id highest serial ID to exclude (select strictly larger)
3155 * @param cb function to call on each result 3036 * @param cb function to call on each result
3156 * @param cb_cls closure for @a cb 3037 * @param cb_cls closure for @a cb
@@ -3158,7 +3039,6 @@ struct TALER_EXCHANGEDB_Plugin
3158 */ 3039 */
3159 enum GNUNET_DB_QueryStatus 3040 enum GNUNET_DB_QueryStatus
3160 (*select_deposits_above_serial_id)(void *cls, 3041 (*select_deposits_above_serial_id)(void *cls,
3161 struct TALER_EXCHANGEDB_Session *session,
3162 uint64_t serial_id, 3042 uint64_t serial_id,
3163 TALER_EXCHANGEDB_DepositCallback cb, 3043 TALER_EXCHANGEDB_DepositCallback cb,
3164 void *cb_cls); 3044 void *cb_cls);
@@ -3168,7 +3048,6 @@ struct TALER_EXCHANGEDB_Plugin
3168 * order. 3048 * order.
3169 * 3049 *
3170 * @param cls closure 3050 * @param cls closure
3171 * @param session database connection
3172 * @param serial_id highest serial ID to exclude (select strictly larger) 3051 * @param serial_id highest serial ID to exclude (select strictly larger)
3173 * @param cb function to call on each result 3052 * @param cb function to call on each result
3174 * @param cb_cls closure for @a cb 3053 * @param cb_cls closure for @a cb
@@ -3176,7 +3055,6 @@ struct TALER_EXCHANGEDB_Plugin
3176 */ 3055 */
3177 enum GNUNET_DB_QueryStatus 3056 enum GNUNET_DB_QueryStatus
3178 (*select_refreshes_above_serial_id)(void *cls, 3057 (*select_refreshes_above_serial_id)(void *cls,
3179 struct TALER_EXCHANGEDB_Session *session,
3180 uint64_t serial_id, 3058 uint64_t serial_id,
3181 TALER_EXCHANGEDB_RefreshesCallback cb, 3059 TALER_EXCHANGEDB_RefreshesCallback cb,
3182 void *cb_cls); 3060 void *cb_cls);
@@ -3187,7 +3065,6 @@ struct TALER_EXCHANGEDB_Plugin
3187 * order. 3065 * order.
3188 * 3066 *
3189 * @param cls closure 3067 * @param cls closure
3190 * @param session database connection
3191 * @param serial_id highest serial ID to exclude (select strictly larger) 3068 * @param serial_id highest serial ID to exclude (select strictly larger)
3192 * @param cb function to call on each result 3069 * @param cb function to call on each result
3193 * @param cb_cls closure for @a cb 3070 * @param cb_cls closure for @a cb
@@ -3195,7 +3072,6 @@ struct TALER_EXCHANGEDB_Plugin
3195 */ 3072 */
3196 enum GNUNET_DB_QueryStatus 3073 enum GNUNET_DB_QueryStatus
3197 (*select_refunds_above_serial_id)(void *cls, 3074 (*select_refunds_above_serial_id)(void *cls,
3198 struct TALER_EXCHANGEDB_Session *session,
3199 uint64_t serial_id, 3075 uint64_t serial_id,
3200 TALER_EXCHANGEDB_RefundCallback cb, 3076 TALER_EXCHANGEDB_RefundCallback cb,
3201 void *cb_cls); 3077 void *cb_cls);
@@ -3206,7 +3082,6 @@ struct TALER_EXCHANGEDB_Plugin
3206 * in monotonically increasing order. 3082 * in monotonically increasing order.
3207 * 3083 *
3208 * @param cls closure 3084 * @param cls closure
3209 * @param session database connection
3210 * @param serial_id highest serial ID to exclude (select strictly larger) 3085 * @param serial_id highest serial ID to exclude (select strictly larger)
3211 * @param cb function to call on each result 3086 * @param cb function to call on each result
3212 * @param cb_cls closure for @a cb 3087 * @param cb_cls closure for @a cb
@@ -3214,7 +3089,6 @@ struct TALER_EXCHANGEDB_Plugin
3214 */ 3089 */
3215 enum GNUNET_DB_QueryStatus 3090 enum GNUNET_DB_QueryStatus
3216 (*select_reserves_in_above_serial_id)(void *cls, 3091 (*select_reserves_in_above_serial_id)(void *cls,
3217 struct TALER_EXCHANGEDB_Session *session,
3218 uint64_t serial_id, 3092 uint64_t serial_id,
3219 TALER_EXCHANGEDB_ReserveInCallback cb, 3093 TALER_EXCHANGEDB_ReserveInCallback cb,
3220 void *cb_cls); 3094 void *cb_cls);
@@ -3225,7 +3099,6 @@ struct TALER_EXCHANGEDB_Plugin
3225 * in monotonically increasing order by @a account_name. 3099 * in monotonically increasing order by @a account_name.
3226 * 3100 *
3227 * @param cls closure 3101 * @param cls closure
3228 * @param session database connection
3229 * @param account_name name of the account for which we do the selection 3102 * @param account_name name of the account for which we do the selection
3230 * @param serial_id highest serial ID to exclude (select strictly larger) 3103 * @param serial_id highest serial ID to exclude (select strictly larger)
3231 * @param cb function to call on each result 3104 * @param cb function to call on each result
@@ -3235,7 +3108,6 @@ struct TALER_EXCHANGEDB_Plugin
3235 enum GNUNET_DB_QueryStatus 3108 enum GNUNET_DB_QueryStatus
3236 (*select_reserves_in_above_serial_id_by_account)( 3109 (*select_reserves_in_above_serial_id_by_account)(
3237 void *cls, 3110 void *cls,
3238 struct TALER_EXCHANGEDB_Session *session,
3239 const char *account_name, 3111 const char *account_name,
3240 uint64_t serial_id, 3112 uint64_t serial_id,
3241 TALER_EXCHANGEDB_ReserveInCallback cb, 3113 TALER_EXCHANGEDB_ReserveInCallback cb,
@@ -3247,7 +3119,6 @@ struct TALER_EXCHANGEDB_Plugin
3247 * in monotonically increasing order. 3119 * in monotonically increasing order.
3248 * 3120 *
3249 * @param cls closure 3121 * @param cls closure
3250 * @param session database connection
3251 * @param account_name name of the account for which we do the selection 3122 * @param account_name name of the account for which we do the selection
3252 * @param serial_id highest serial ID to exclude (select strictly larger) 3123 * @param serial_id highest serial ID to exclude (select strictly larger)
3253 * @param cb function to call on each result 3124 * @param cb function to call on each result
@@ -3257,7 +3128,6 @@ struct TALER_EXCHANGEDB_Plugin
3257 enum GNUNET_DB_QueryStatus 3128 enum GNUNET_DB_QueryStatus
3258 (*select_withdrawals_above_serial_id)( 3129 (*select_withdrawals_above_serial_id)(
3259 void *cls, 3130 void *cls,
3260 struct TALER_EXCHANGEDB_Session *session,
3261 uint64_t serial_id, 3131 uint64_t serial_id,
3262 TALER_EXCHANGEDB_WithdrawCallback cb, 3132 TALER_EXCHANGEDB_WithdrawCallback cb,
3263 void *cb_cls); 3133 void *cb_cls);
@@ -3268,7 +3138,6 @@ struct TALER_EXCHANGEDB_Plugin
3268 * executed, ordered by serial ID (monotonically increasing). 3138 * executed, ordered by serial ID (monotonically increasing).
3269 * 3139 *
3270 * @param cls closure 3140 * @param cls closure
3271 * @param session database connection
3272 * @param serial_id lowest serial ID to include (select larger or equal) 3141 * @param serial_id lowest serial ID to include (select larger or equal)
3273 * @param cb function to call for ONE unfinished item 3142 * @param cb function to call for ONE unfinished item
3274 * @param cb_cls closure for @a cb 3143 * @param cb_cls closure for @a cb
@@ -3276,7 +3145,6 @@ struct TALER_EXCHANGEDB_Plugin
3276 */ 3145 */
3277 enum GNUNET_DB_QueryStatus 3146 enum GNUNET_DB_QueryStatus
3278 (*select_wire_out_above_serial_id)(void *cls, 3147 (*select_wire_out_above_serial_id)(void *cls,
3279 struct TALER_EXCHANGEDB_Session *session,
3280 uint64_t serial_id, 3148 uint64_t serial_id,
3281 TALER_EXCHANGEDB_WireTransferOutCallback cb, 3149 TALER_EXCHANGEDB_WireTransferOutCallback cb,
3282 void *cb_cls); 3150 void *cb_cls);
@@ -3286,7 +3154,6 @@ struct TALER_EXCHANGEDB_Plugin
3286 * executed, ordered by serial ID (monotonically increasing). 3154 * executed, ordered by serial ID (monotonically increasing).
3287 * 3155 *
3288 * @param cls closure 3156 * @param cls closure
3289 * @param session database connection
3290 * @param account_name name to select by 3157 * @param account_name name to select by
3291 * @param serial_id lowest serial ID to include (select larger or equal) 3158 * @param serial_id lowest serial ID to include (select larger or equal)
3292 * @param cb function to call for ONE unfinished item 3159 * @param cb function to call for ONE unfinished item
@@ -3296,7 +3163,6 @@ struct TALER_EXCHANGEDB_Plugin
3296 enum GNUNET_DB_QueryStatus 3163 enum GNUNET_DB_QueryStatus
3297 (*select_wire_out_above_serial_id_by_account)( 3164 (*select_wire_out_above_serial_id_by_account)(
3298 void *cls, 3165 void *cls,
3299 struct TALER_EXCHANGEDB_Session *session,
3300 const char *account_name, 3166 const char *account_name,
3301 uint64_t serial_id, 3167 uint64_t serial_id,
3302 TALER_EXCHANGEDB_WireTransferOutCallback cb, 3168 TALER_EXCHANGEDB_WireTransferOutCallback cb,
@@ -3308,7 +3174,6 @@ struct TALER_EXCHANGEDB_Plugin
3308 * received, ordered by serial ID (monotonically increasing). 3174 * received, ordered by serial ID (monotonically increasing).
3309 * 3175 *
3310 * @param cls closure 3176 * @param cls closure
3311 * @param session database connection
3312 * @param serial_id lowest serial ID to include (select larger or equal) 3177 * @param serial_id lowest serial ID to include (select larger or equal)
3313 * @param cb function to call for ONE unfinished item 3178 * @param cb function to call for ONE unfinished item
3314 * @param cb_cls closure for @a cb 3179 * @param cb_cls closure for @a cb
@@ -3316,7 +3181,6 @@ struct TALER_EXCHANGEDB_Plugin
3316 */ 3181 */
3317 enum GNUNET_DB_QueryStatus 3182 enum GNUNET_DB_QueryStatus
3318 (*select_recoup_above_serial_id)(void *cls, 3183 (*select_recoup_above_serial_id)(void *cls,
3319 struct TALER_EXCHANGEDB_Session *session,
3320 uint64_t serial_id, 3184 uint64_t serial_id,
3321 TALER_EXCHANGEDB_RecoupCallback cb, 3185 TALER_EXCHANGEDB_RecoupCallback cb,
3322 void *cb_cls); 3186 void *cb_cls);
@@ -3327,7 +3191,6 @@ struct TALER_EXCHANGEDB_Plugin
3327 * refreshed coins, ordered by serial ID (monotonically increasing). 3191 * refreshed coins, ordered by serial ID (monotonically increasing).
3328 * 3192 *
3329 * @param cls closure 3193 * @param cls closure
3330 * @param session database connection
3331 * @param serial_id lowest serial ID to include (select larger or equal) 3194 * @param serial_id lowest serial ID to include (select larger or equal)
3332 * @param cb function to call for ONE unfinished item 3195 * @param cb function to call for ONE unfinished item
3333 * @param cb_cls closure for @a cb 3196 * @param cb_cls closure for @a cb
@@ -3336,7 +3199,6 @@ struct TALER_EXCHANGEDB_Plugin
3336 enum GNUNET_DB_QueryStatus 3199 enum GNUNET_DB_QueryStatus
3337 (*select_recoup_refresh_above_serial_id)( 3200 (*select_recoup_refresh_above_serial_id)(
3338 void *cls, 3201 void *cls,
3339 struct TALER_EXCHANGEDB_Session *session,
3340 uint64_t serial_id, 3202 uint64_t serial_id,
3341 TALER_EXCHANGEDB_RecoupRefreshCallback cb, 3203 TALER_EXCHANGEDB_RecoupRefreshCallback cb,
3342 void *cb_cls); 3204 void *cb_cls);
@@ -3347,7 +3209,6 @@ struct TALER_EXCHANGEDB_Plugin
3347 * triggered, ordered by serial ID (monotonically increasing). 3209 * triggered, ordered by serial ID (monotonically increasing).
3348 * 3210 *
3349 * @param cls closure 3211 * @param cls closure
3350 * @param session database connection
3351 * @param serial_id lowest serial ID to include (select larger or equal) 3212 * @param serial_id lowest serial ID to include (select larger or equal)
3352 * @param cb function to call 3213 * @param cb function to call
3353 * @param cb_cls closure for @a cb 3214 * @param cb_cls closure for @a cb
@@ -3356,7 +3217,6 @@ struct TALER_EXCHANGEDB_Plugin
3356 enum GNUNET_DB_QueryStatus 3217 enum GNUNET_DB_QueryStatus
3357 (*select_reserve_closed_above_serial_id)( 3218 (*select_reserve_closed_above_serial_id)(
3358 void *cls, 3219 void *cls,
3359 struct TALER_EXCHANGEDB_Session *session,
3360 uint64_t serial_id, 3220 uint64_t serial_id,
3361 TALER_EXCHANGEDB_ReserveClosedCallback cb, 3221 TALER_EXCHANGEDB_ReserveClosedCallback cb,
3362 void *cb_cls); 3222 void *cb_cls);
@@ -3367,7 +3227,6 @@ struct TALER_EXCHANGEDB_Plugin
3367 * coin. The funds are to be added back to the reserve. 3227 * coin. The funds are to be added back to the reserve.
3368 * 3228 *
3369 * @param cls closure 3229 * @param cls closure
3370 * @param session database connection
3371 * @param reserve_pub public key of the reserve that is being refunded 3230 * @param reserve_pub public key of the reserve that is being refunded
3372 * @param coin public information about a coin 3231 * @param coin public information about a coin
3373 * @param coin_sig signature of the coin of type #TALER_SIGNATURE_WALLET_COIN_RECOUP 3232 * @param coin_sig signature of the coin of type #TALER_SIGNATURE_WALLET_COIN_RECOUP
@@ -3381,7 +3240,6 @@ struct TALER_EXCHANGEDB_Plugin
3381 enum GNUNET_DB_QueryStatus 3240 enum GNUNET_DB_QueryStatus
3382 (*insert_recoup_request)( 3241 (*insert_recoup_request)(
3383 void *cls, 3242 void *cls,
3384 struct TALER_EXCHANGEDB_Session *session,
3385 const struct TALER_ReservePublicKeyP *reserve_pub, 3243 const struct TALER_ReservePublicKeyP *reserve_pub,
3386 const struct TALER_CoinPublicInfo *coin, 3244 const struct TALER_CoinPublicInfo *coin,
3387 const struct TALER_CoinSpendSignatureP *coin_sig, 3245 const struct TALER_CoinSpendSignatureP *coin_sig,
@@ -3396,7 +3254,6 @@ struct TALER_EXCHANGEDB_Plugin
3396 * refreshed coin. The funds are to be added back to the original coin. 3254 * refreshed coin. The funds are to be added back to the original coin.
3397 * 3255 *
3398 * @param cls closure 3256 * @param cls closure
3399 * @param session database connection
3400 * @param coin public information about the refreshed coin 3257 * @param coin public information about the refreshed coin
3401 * @param coin_sig signature of the coin of type #TALER_SIGNATURE_WALLET_COIN_RECOUP 3258 * @param coin_sig signature of the coin of type #TALER_SIGNATURE_WALLET_COIN_RECOUP
3402 * @param coin_blind blinding key of the coin 3259 * @param coin_blind blinding key of the coin
@@ -3409,7 +3266,6 @@ struct TALER_EXCHANGEDB_Plugin
3409 enum GNUNET_DB_QueryStatus 3266 enum GNUNET_DB_QueryStatus
3410 (*insert_recoup_refresh_request)( 3267 (*insert_recoup_refresh_request)(
3411 void *cls, 3268 void *cls,
3412 struct TALER_EXCHANGEDB_Session *session,
3413 const struct TALER_CoinPublicInfo *coin, 3269 const struct TALER_CoinPublicInfo *coin,
3414 const struct TALER_CoinSpendSignatureP *coin_sig, 3270 const struct TALER_CoinSpendSignatureP *coin_sig,
3415 const struct TALER_DenominationBlindingKeyP *coin_blind, 3271 const struct TALER_DenominationBlindingKeyP *coin_blind,
@@ -3423,14 +3279,12 @@ struct TALER_EXCHANGEDB_Plugin
3423 * from given the hash of the blinded coin. 3279 * from given the hash of the blinded coin.
3424 * 3280 *
3425 * @param cls closure 3281 * @param cls closure
3426 * @param session a session
3427 * @param h_blind_ev hash of the blinded coin 3282 * @param h_blind_ev hash of the blinded coin
3428 * @param[out] reserve_pub set to information about the reserve (on success only) 3283 * @param[out] reserve_pub set to information about the reserve (on success only)
3429 * @return transaction status code 3284 * @return transaction status code
3430 */ 3285 */
3431 enum GNUNET_DB_QueryStatus 3286 enum GNUNET_DB_QueryStatus
3432 (*get_reserve_by_h_blind)(void *cls, 3287 (*get_reserve_by_h_blind)(void *cls,
3433 struct TALER_EXCHANGEDB_Session *session,
3434 const struct GNUNET_HashCode *h_blind_ev, 3288 const struct GNUNET_HashCode *h_blind_ev,
3435 struct TALER_ReservePublicKeyP *reserve_pub); 3289 struct TALER_ReservePublicKeyP *reserve_pub);
3436 3290
@@ -3440,14 +3294,12 @@ struct TALER_EXCHANGEDB_Plugin
3440 * given the hash of the blinded (fresh) coin. 3294 * given the hash of the blinded (fresh) coin.
3441 * 3295 *
3442 * @param cls closure 3296 * @param cls closure
3443 * @param session a session
3444 * @param h_blind_ev hash of the blinded coin 3297 * @param h_blind_ev hash of the blinded coin
3445 * @param[out] old_coin_pub set to information about the old coin (on success only) 3298 * @param[out] old_coin_pub set to information about the old coin (on success only)
3446 * @return transaction status code 3299 * @return transaction status code
3447 */ 3300 */
3448 enum GNUNET_DB_QueryStatus 3301 enum GNUNET_DB_QueryStatus
3449 (*get_old_coin_by_h_blind)(void *cls, 3302 (*get_old_coin_by_h_blind)(void *cls,
3450 struct TALER_EXCHANGEDB_Session *session,
3451 const struct GNUNET_HashCode *h_blind_ev, 3303 const struct GNUNET_HashCode *h_blind_ev,
3452 struct TALER_CoinSpendPublicKeyP *old_coin_pub); 3304 struct TALER_CoinSpendPublicKeyP *old_coin_pub);
3453 3305
@@ -3457,7 +3309,6 @@ struct TALER_EXCHANGEDB_Plugin
3457 * in the database. 3309 * in the database.
3458 * 3310 *
3459 * @param cls closure 3311 * @param cls closure
3460 * @param session a session
3461 * @param denom_pub_hash hash of the revoked denomination key 3312 * @param denom_pub_hash hash of the revoked denomination key
3462 * @param master_sig signature affirming the revocation 3313 * @param master_sig signature affirming the revocation
3463 * @return transaction status code 3314 * @return transaction status code
@@ -3465,7 +3316,6 @@ struct TALER_EXCHANGEDB_Plugin
3465 enum GNUNET_DB_QueryStatus 3316 enum GNUNET_DB_QueryStatus
3466 (*insert_denomination_revocation)( 3317 (*insert_denomination_revocation)(
3467 void *cls, 3318 void *cls,
3468 struct TALER_EXCHANGEDB_Session *session,
3469 const struct GNUNET_HashCode *denom_pub_hash, 3319 const struct GNUNET_HashCode *denom_pub_hash,
3470 const struct TALER_MasterSignatureP *master_sig); 3320 const struct TALER_MasterSignatureP *master_sig);
3471 3321
@@ -3475,7 +3325,6 @@ struct TALER_EXCHANGEDB_Plugin
3475 * the database. 3325 * the database.
3476 * 3326 *
3477 * @param cls closure 3327 * @param cls closure
3478 * @param session a session
3479 * @param denom_pub_hash hash of the revoked denomination key 3328 * @param denom_pub_hash hash of the revoked denomination key
3480 * @param[out] master_sig signature affirming the revocation 3329 * @param[out] master_sig signature affirming the revocation
3481 * @param[out] rowid row where the information is stored 3330 * @param[out] rowid row where the information is stored
@@ -3483,7 +3332,6 @@ struct TALER_EXCHANGEDB_Plugin
3483 */ 3332 */
3484 enum GNUNET_DB_QueryStatus 3333 enum GNUNET_DB_QueryStatus
3485 (*get_denomination_revocation)(void *cls, 3334 (*get_denomination_revocation)(void *cls,
3486 struct TALER_EXCHANGEDB_Session *session,
3487 const struct GNUNET_HashCode *denom_pub_hash, 3335 const struct GNUNET_HashCode *denom_pub_hash,
3488 struct TALER_MasterSignatureP *master_sig, 3336 struct TALER_MasterSignatureP *master_sig,
3489 uint64_t *rowid); 3337 uint64_t *rowid);
@@ -3495,7 +3343,6 @@ struct TALER_EXCHANGEDB_Plugin
3495 * been deposited between @a start_date and @a end_date. 3343 * been deposited between @a start_date and @a end_date.
3496 * 3344 *
3497 * @param cls closure 3345 * @param cls closure
3498 * @param session a session
3499 * @param start_date lower bound on the requested wire execution date 3346 * @param start_date lower bound on the requested wire execution date
3500 * @param end_date upper bound on the requested wire execution date 3347 * @param end_date upper bound on the requested wire execution date
3501 * @param cb function to call on all such deposits 3348 * @param cb function to call on all such deposits
@@ -3504,7 +3351,6 @@ struct TALER_EXCHANGEDB_Plugin
3504 */ 3351 */
3505 enum GNUNET_DB_QueryStatus 3352 enum GNUNET_DB_QueryStatus
3506 (*select_deposits_missing_wire)(void *cls, 3353 (*select_deposits_missing_wire)(void *cls,
3507 struct TALER_EXCHANGEDB_Session *session,
3508 struct GNUNET_TIME_Absolute start_date, 3354 struct GNUNET_TIME_Absolute start_date,
3509 struct GNUNET_TIME_Absolute end_date, 3355 struct GNUNET_TIME_Absolute end_date,
3510 TALER_EXCHANGEDB_WireMissingCallback cb, 3356 TALER_EXCHANGEDB_WireMissingCallback cb,
@@ -3515,14 +3361,12 @@ struct TALER_EXCHANGEDB_Plugin
3515 * Check the last date an auditor was modified. 3361 * Check the last date an auditor was modified.
3516 * 3362 *
3517 * @param cls closure 3363 * @param cls closure
3518 * @param session a session
3519 * @param auditor_pub key to look up information for 3364 * @param auditor_pub key to look up information for
3520 * @param[out] last_date last modification date to auditor status 3365 * @param[out] last_date last modification date to auditor status
3521 * @return transaction status code 3366 * @return transaction status code
3522 */ 3367 */
3523 enum GNUNET_DB_QueryStatus 3368 enum GNUNET_DB_QueryStatus
3524 (*lookup_auditor_timestamp)(void *cls, 3369 (*lookup_auditor_timestamp)(void *cls,
3525 struct TALER_EXCHANGEDB_Session *session,
3526 const struct TALER_AuditorPublicKeyP *auditor_pub, 3370 const struct TALER_AuditorPublicKeyP *auditor_pub,
3527 struct GNUNET_TIME_Absolute *last_date); 3371 struct GNUNET_TIME_Absolute *last_date);
3528 3372
@@ -3531,7 +3375,6 @@ struct TALER_EXCHANGEDB_Plugin
3531 * Lookup current state of an auditor. 3375 * Lookup current state of an auditor.
3532 * 3376 *
3533 * @param cls closure 3377 * @param cls closure
3534 * @param session a session
3535 * @param auditor_pub key to look up information for 3378 * @param auditor_pub key to look up information for
3536 * @param[out] auditor_url set to the base URL of the auditor's REST API; memory to be 3379 * @param[out] auditor_url set to the base URL of the auditor's REST API; memory to be
3537 * released by the caller! 3380 * released by the caller!
@@ -3540,7 +3383,6 @@ struct TALER_EXCHANGEDB_Plugin
3540 */ 3383 */
3541 enum GNUNET_DB_QueryStatus 3384 enum GNUNET_DB_QueryStatus
3542 (*lookup_auditor_status)(void *cls, 3385 (*lookup_auditor_status)(void *cls,
3543 struct TALER_EXCHANGEDB_Session *session,
3544 const struct TALER_AuditorPublicKeyP *auditor_pub, 3386 const struct TALER_AuditorPublicKeyP *auditor_pub,
3545 char **auditor_url, 3387 char **auditor_url,
3546 bool *enabled); 3388 bool *enabled);
@@ -3550,7 +3392,6 @@ struct TALER_EXCHANGEDB_Plugin
3550 * Insert information about an auditor that will audit this exchange. 3392 * Insert information about an auditor that will audit this exchange.
3551 * 3393 *
3552 * @param cls closure 3394 * @param cls closure
3553 * @param session a session
3554 * @param auditor_pub key of the auditor 3395 * @param auditor_pub key of the auditor
3555 * @param auditor_url base URL of the auditor's REST service 3396 * @param auditor_url base URL of the auditor's REST service
3556 * @param auditor_name name of the auditor (for humans) 3397 * @param auditor_name name of the auditor (for humans)
@@ -3560,7 +3401,6 @@ struct TALER_EXCHANGEDB_Plugin
3560 */ 3401 */
3561 enum GNUNET_DB_QueryStatus 3402 enum GNUNET_DB_QueryStatus
3562 (*insert_auditor)(void *cls, 3403 (*insert_auditor)(void *cls,
3563 struct TALER_EXCHANGEDB_Session *session,
3564 const struct TALER_AuditorPublicKeyP *auditor_pub, 3404 const struct TALER_AuditorPublicKeyP *auditor_pub,
3565 const char *auditor_url, 3405 const char *auditor_url,
3566 const char *auditor_name, 3406 const char *auditor_name,
@@ -3571,7 +3411,6 @@ struct TALER_EXCHANGEDB_Plugin
3571 * Update information about an auditor that will audit this exchange. 3411 * Update information about an auditor that will audit this exchange.
3572 * 3412 *
3573 * @param cls closure 3413 * @param cls closure
3574 * @param session a session
3575 * @param auditor_pub key of the auditor (primary key for the existing record) 3414 * @param auditor_pub key of the auditor (primary key for the existing record)
3576 * @param auditor_url base URL of the auditor's REST service, to be updated 3415 * @param auditor_url base URL of the auditor's REST service, to be updated
3577 * @param auditor_name name of the auditor (for humans) 3416 * @param auditor_name name of the auditor (for humans)
@@ -3582,7 +3421,6 @@ struct TALER_EXCHANGEDB_Plugin
3582 */ 3421 */
3583 enum GNUNET_DB_QueryStatus 3422 enum GNUNET_DB_QueryStatus
3584 (*update_auditor)(void *cls, 3423 (*update_auditor)(void *cls,
3585 struct TALER_EXCHANGEDB_Session *session,
3586 const struct TALER_AuditorPublicKeyP *auditor_pub, 3424 const struct TALER_AuditorPublicKeyP *auditor_pub,
3587 const char *auditor_url, 3425 const char *auditor_url,
3588 const char *auditor_name, 3426 const char *auditor_name,
@@ -3594,14 +3432,12 @@ struct TALER_EXCHANGEDB_Plugin
3594 * Check the last date an exchange wire account was modified. 3432 * Check the last date an exchange wire account was modified.
3595 * 3433 *
3596 * @param cls closure 3434 * @param cls closure
3597 * @param session a session
3598 * @param payto_uri key to look up information for 3435 * @param payto_uri key to look up information for
3599 * @param[out] last_date last modification date to auditor status 3436 * @param[out] last_date last modification date to auditor status
3600 * @return transaction status code 3437 * @return transaction status code
3601 */ 3438 */
3602 enum GNUNET_DB_QueryStatus 3439 enum GNUNET_DB_QueryStatus
3603 (*lookup_wire_timestamp)(void *cls, 3440 (*lookup_wire_timestamp)(void *cls,
3604 struct TALER_EXCHANGEDB_Session *session,
3605 const char *payto_uri, 3441 const char *payto_uri,
3606 struct GNUNET_TIME_Absolute *last_date); 3442 struct GNUNET_TIME_Absolute *last_date);
3607 3443
@@ -3610,7 +3446,6 @@ struct TALER_EXCHANGEDB_Plugin
3610 * Insert information about an wire account used by this exchange. 3446 * Insert information about an wire account used by this exchange.
3611 * 3447 *
3612 * @param cls closure 3448 * @param cls closure
3613 * @param session a session
3614 * @param payto_uri wire account of the exchange 3449 * @param payto_uri wire account of the exchange
3615 * @param start_date date when the account was added by the offline system 3450 * @param start_date date when the account was added by the offline system
3616 * (only to be used for replay detection) 3451 * (only to be used for replay detection)
@@ -3620,7 +3455,6 @@ struct TALER_EXCHANGEDB_Plugin
3620 */ 3455 */
3621 enum GNUNET_DB_QueryStatus 3456 enum GNUNET_DB_QueryStatus
3622 (*insert_wire)(void *cls, 3457 (*insert_wire)(void *cls,
3623 struct TALER_EXCHANGEDB_Session *session,
3624 const char *payto_uri, 3458 const char *payto_uri,
3625 struct GNUNET_TIME_Absolute start_date, 3459 struct GNUNET_TIME_Absolute start_date,
3626 const struct TALER_MasterSignatureP *master_sig); 3460 const struct TALER_MasterSignatureP *master_sig);
@@ -3630,7 +3464,6 @@ struct TALER_EXCHANGEDB_Plugin
3630 * Update information about a wire account of the exchange. 3464 * Update information about a wire account of the exchange.
3631 * 3465 *
3632 * @param cls closure 3466 * @param cls closure
3633 * @param session a session
3634 * @param payto_uri account the update is about 3467 * @param payto_uri account the update is about
3635 * @param change_date date when the account status was last changed 3468 * @param change_date date when the account status was last changed
3636 * (only to be used for replay detection) 3469 * (only to be used for replay detection)
@@ -3639,7 +3472,6 @@ struct TALER_EXCHANGEDB_Plugin
3639 */ 3472 */
3640 enum GNUNET_DB_QueryStatus 3473 enum GNUNET_DB_QueryStatus
3641 (*update_wire)(void *cls, 3474 (*update_wire)(void *cls,
3642 struct TALER_EXCHANGEDB_Session *session,
3643 const char *payto_uri, 3475 const char *payto_uri,
3644 struct GNUNET_TIME_Absolute change_date, 3476 struct GNUNET_TIME_Absolute change_date,
3645 bool enabled); 3477 bool enabled);
@@ -3680,7 +3512,6 @@ struct TALER_EXCHANGEDB_Plugin
3680 * Store information about a revoked online signing key. 3512 * Store information about a revoked online signing key.
3681 * 3513 *
3682 * @param cls closure 3514 * @param cls closure
3683 * @param session a session (can be NULL)
3684 * @param exchange_pub exchange online signing key that was revoked 3515 * @param exchange_pub exchange online signing key that was revoked
3685 * @param master_sig signature affirming the revocation 3516 * @param master_sig signature affirming the revocation
3686 * @return transaction status code 3517 * @return transaction status code
@@ -3688,7 +3519,6 @@ struct TALER_EXCHANGEDB_Plugin
3688 enum GNUNET_DB_QueryStatus 3519 enum GNUNET_DB_QueryStatus
3689 (*insert_signkey_revocation)( 3520 (*insert_signkey_revocation)(
3690 void *cls, 3521 void *cls,
3691 struct TALER_EXCHANGEDB_Session *session,
3692 const struct TALER_ExchangePublicKeyP *exchange_pub, 3522 const struct TALER_ExchangePublicKeyP *exchange_pub,
3693 const struct TALER_MasterSignatureP *master_sig); 3523 const struct TALER_MasterSignatureP *master_sig);
3694 3524
@@ -3697,7 +3527,6 @@ struct TALER_EXCHANGEDB_Plugin
3697 * Obtain information about a revoked online signing key. 3527 * Obtain information about a revoked online signing key.
3698 * 3528 *
3699 * @param cls closure 3529 * @param cls closure
3700 * @param session a session (can be NULL)
3701 * @param exchange_pub exchange online signing key that was revoked 3530 * @param exchange_pub exchange online signing key that was revoked
3702 * @param[out] master_sig signature affirming the revocation 3531 * @param[out] master_sig signature affirming the revocation
3703 * @return transaction status code 3532 * @return transaction status code
@@ -3705,7 +3534,6 @@ struct TALER_EXCHANGEDB_Plugin
3705 enum GNUNET_DB_QueryStatus 3534 enum GNUNET_DB_QueryStatus
3706 (*lookup_signkey_revocation)( 3535 (*lookup_signkey_revocation)(
3707 void *cls, 3536 void *cls,
3708 struct TALER_EXCHANGEDB_Session *session,
3709 const struct TALER_ExchangePublicKeyP *exchange_pub, 3537 const struct TALER_ExchangePublicKeyP *exchange_pub,
3710 struct TALER_MasterSignatureP *master_sig); 3538 struct TALER_MasterSignatureP *master_sig);
3711 3539
@@ -3714,7 +3542,6 @@ struct TALER_EXCHANGEDB_Plugin
3714 * Lookup information about current denomination key. 3542 * Lookup information about current denomination key.
3715 * 3543 *
3716 * @param cls closure 3544 * @param cls closure
3717 * @param session a session
3718 * @param h_denom_pub hash of the denomination public key 3545 * @param h_denom_pub hash of the denomination public key
3719 * @param[out] meta set to various meta data about the key 3546 * @param[out] meta set to various meta data about the key
3720 * @return transaction status code 3547 * @return transaction status code
@@ -3722,7 +3549,6 @@ struct TALER_EXCHANGEDB_Plugin
3722 enum GNUNET_DB_QueryStatus 3549 enum GNUNET_DB_QueryStatus
3723 (*lookup_denomination_key)( 3550 (*lookup_denomination_key)(
3724 void *cls, 3551 void *cls,
3725 struct TALER_EXCHANGEDB_Session *session,
3726 const struct GNUNET_HashCode *h_denom_pub, 3552 const struct GNUNET_HashCode *h_denom_pub,
3727 struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta); 3553 struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta);
3728 3554
@@ -3731,7 +3557,6 @@ struct TALER_EXCHANGEDB_Plugin
3731 * Add denomination key. 3557 * Add denomination key.
3732 * 3558 *
3733 * @param cls closure 3559 * @param cls closure
3734 * @param session a session
3735 * @param h_denom_pub hash of the denomination public key 3560 * @param h_denom_pub hash of the denomination public key
3736 * @param denom_pub the denomination public key 3561 * @param denom_pub the denomination public key
3737 * @param meta meta data about the denomination 3562 * @param meta meta data about the denomination
@@ -3741,7 +3566,6 @@ struct TALER_EXCHANGEDB_Plugin
3741 enum GNUNET_DB_QueryStatus 3566 enum GNUNET_DB_QueryStatus
3742 (*add_denomination_key)( 3567 (*add_denomination_key)(
3743 void *cls, 3568 void *cls,
3744 struct TALER_EXCHANGEDB_Session *session,
3745 const struct GNUNET_HashCode *h_denom_pub, 3569 const struct GNUNET_HashCode *h_denom_pub,
3746 const struct TALER_DenominationPublicKey *denom_pub, 3570 const struct TALER_DenominationPublicKey *denom_pub,
3747 const struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta, 3571 const struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta,
@@ -3753,7 +3577,6 @@ struct TALER_EXCHANGEDB_Plugin
3753 * denomination key by adding the master signature. 3577 * denomination key by adding the master signature.
3754 * 3578 *
3755 * @param cls closure 3579 * @param cls closure
3756 * @param session a session
3757 * @param exchange_pub the exchange online signing public key 3580 * @param exchange_pub the exchange online signing public key
3758 * @param meta meta data about @a exchange_pub 3581 * @param meta meta data about @a exchange_pub
3759 * @param master_sig master signature to add 3582 * @param master_sig master signature to add
@@ -3762,7 +3585,6 @@ struct TALER_EXCHANGEDB_Plugin
3762 enum GNUNET_DB_QueryStatus 3585 enum GNUNET_DB_QueryStatus
3763 (*activate_signing_key)( 3586 (*activate_signing_key)(
3764 void *cls, 3587 void *cls,
3765 struct TALER_EXCHANGEDB_Session *session,
3766 const struct TALER_ExchangePublicKeyP *exchange_pub, 3588 const struct TALER_ExchangePublicKeyP *exchange_pub,
3767 const struct TALER_EXCHANGEDB_SignkeyMetaData *meta, 3589 const struct TALER_EXCHANGEDB_SignkeyMetaData *meta,
3768 const struct TALER_MasterSignatureP *master_sig); 3590 const struct TALER_MasterSignatureP *master_sig);
@@ -3772,7 +3594,6 @@ struct TALER_EXCHANGEDB_Plugin
3772 * Lookup signing key meta data. 3594 * Lookup signing key meta data.
3773 * 3595 *
3774 * @param cls closure 3596 * @param cls closure
3775 * @param session a session
3776 * @param exchange_pub the exchange online signing public key 3597 * @param exchange_pub the exchange online signing public key
3777 * @param[out] meta meta data about @a exchange_pub 3598 * @param[out] meta meta data about @a exchange_pub
3778 * @return transaction status code 3599 * @return transaction status code
@@ -3780,7 +3601,6 @@ struct TALER_EXCHANGEDB_Plugin
3780 enum GNUNET_DB_QueryStatus 3601 enum GNUNET_DB_QueryStatus
3781 (*lookup_signing_key)( 3602 (*lookup_signing_key)(
3782 void *cls, 3603 void *cls,
3783 struct TALER_EXCHANGEDB_Session *session,
3784 const struct TALER_ExchangePublicKeyP *exchange_pub, 3604 const struct TALER_ExchangePublicKeyP *exchange_pub,
3785 struct TALER_EXCHANGEDB_SignkeyMetaData *meta); 3605 struct TALER_EXCHANGEDB_SignkeyMetaData *meta);
3786 3606
@@ -3789,7 +3609,6 @@ struct TALER_EXCHANGEDB_Plugin
3789 * Insert information about an auditor auditing a denomination key. 3609 * Insert information about an auditor auditing a denomination key.
3790 * 3610 *
3791 * @param cls closure 3611 * @param cls closure
3792 * @param session a session
3793 * @param h_denom_pub the audited denomination 3612 * @param h_denom_pub the audited denomination
3794 * @param auditor_pub the auditor's key 3613 * @param auditor_pub the auditor's key
3795 * @param auditor_sig signature affirming the auditor's audit activity 3614 * @param auditor_sig signature affirming the auditor's audit activity
@@ -3798,7 +3617,6 @@ struct TALER_EXCHANGEDB_Plugin
3798 enum GNUNET_DB_QueryStatus 3617 enum GNUNET_DB_QueryStatus
3799 (*insert_auditor_denom_sig)( 3618 (*insert_auditor_denom_sig)(
3800 void *cls, 3619 void *cls,
3801 struct TALER_EXCHANGEDB_Session *session,
3802 const struct GNUNET_HashCode *h_denom_pub, 3620 const struct GNUNET_HashCode *h_denom_pub,
3803 const struct TALER_AuditorPublicKeyP *auditor_pub, 3621 const struct TALER_AuditorPublicKeyP *auditor_pub,
3804 const struct TALER_AuditorSignatureP *auditor_sig); 3622 const struct TALER_AuditorSignatureP *auditor_sig);
@@ -3808,7 +3626,6 @@ struct TALER_EXCHANGEDB_Plugin
3808 * Obtain information about an auditor auditing a denomination key. 3626 * Obtain information about an auditor auditing a denomination key.
3809 * 3627 *
3810 * @param cls closure 3628 * @param cls closure
3811 * @param session a session
3812 * @param h_denom_pub the audited denomination 3629 * @param h_denom_pub the audited denomination
3813 * @param auditor_pub the auditor's key 3630 * @param auditor_pub the auditor's key
3814 * @param[out] auditor_sig set to signature affirming the auditor's audit activity 3631 * @param[out] auditor_sig set to signature affirming the auditor's audit activity
@@ -3817,7 +3634,6 @@ struct TALER_EXCHANGEDB_Plugin
3817 enum GNUNET_DB_QueryStatus 3634 enum GNUNET_DB_QueryStatus
3818 (*select_auditor_denom_sig)( 3635 (*select_auditor_denom_sig)(
3819 void *cls, 3636 void *cls,
3820 struct TALER_EXCHANGEDB_Session *session,
3821 const struct GNUNET_HashCode *h_denom_pub, 3637 const struct GNUNET_HashCode *h_denom_pub,
3822 const struct TALER_AuditorPublicKeyP *auditor_pub, 3638 const struct TALER_AuditorPublicKeyP *auditor_pub,
3823 struct TALER_AuditorSignatureP *auditor_sig); 3639 struct TALER_AuditorSignatureP *auditor_sig);
@@ -3827,7 +3643,6 @@ struct TALER_EXCHANGEDB_Plugin
3827 * Lookup information about known wire fees. 3643 * Lookup information about known wire fees.
3828 * 3644 *
3829 * @param cls closure 3645 * @param cls closure
3830 * @param session a session
3831 * @param wire_method the wire method to lookup fees for 3646 * @param wire_method the wire method to lookup fees for
3832 * @param start_time starting time of fee 3647 * @param start_time starting time of fee
3833 * @param end_time end time of fee 3648 * @param end_time end time of fee
@@ -3842,7 +3657,6 @@ struct TALER_EXCHANGEDB_Plugin
3842 enum GNUNET_DB_QueryStatus 3657 enum GNUNET_DB_QueryStatus
3843 (*lookup_wire_fee_by_time)( 3658 (*lookup_wire_fee_by_time)(
3844 void *cls, 3659 void *cls,
3845 struct TALER_EXCHANGEDB_Session *session,
3846 const char *wire_method, 3660 const char *wire_method,
3847 struct GNUNET_TIME_Absolute start_time, 3661 struct GNUNET_TIME_Absolute start_time,
3848 struct GNUNET_TIME_Absolute end_time, 3662 struct GNUNET_TIME_Absolute end_time,
@@ -3855,7 +3669,6 @@ struct TALER_EXCHANGEDB_Plugin
3855 * exchange-auditor database replication. 3669 * exchange-auditor database replication.
3856 * 3670 *
3857 * @param cls closure 3671 * @param cls closure
3858 * @param session a session
3859 * @param table table for which we should return the serial 3672 * @param table table for which we should return the serial
3860 * @param[out] latest serial number in use 3673 * @param[out] latest serial number in use
3861 * @return transaction status code, #GNUNET_DB_STATUS_HARD_ERROR if 3674 * @return transaction status code, #GNUNET_DB_STATUS_HARD_ERROR if
@@ -3863,7 +3676,6 @@ struct TALER_EXCHANGEDB_Plugin
3863 */ 3676 */
3864 enum GNUNET_DB_QueryStatus 3677 enum GNUNET_DB_QueryStatus
3865 (*lookup_serial_by_table)(void *cls, 3678 (*lookup_serial_by_table)(void *cls,
3866 struct TALER_EXCHANGEDB_Session *session,
3867 enum TALER_EXCHANGEDB_ReplicatedTable table, 3679 enum TALER_EXCHANGEDB_ReplicatedTable table,
3868 uint64_t *serial); 3680 uint64_t *serial);
3869 3681
@@ -3872,7 +3684,6 @@ struct TALER_EXCHANGEDB_Plugin
3872 * exchange-auditor database replication. 3684 * exchange-auditor database replication.
3873 * 3685 *
3874 * @param cls closure 3686 * @param cls closure
3875 * @param session a session
3876 * @param table table for which we should return the serial 3687 * @param table table for which we should return the serial
3877 * @param serial largest serial number to exclude 3688 * @param serial largest serial number to exclude
3878 * @param cb function to call on the records 3689 * @param cb function to call on the records
@@ -3882,7 +3693,6 @@ struct TALER_EXCHANGEDB_Plugin
3882 */ 3693 */
3883 enum GNUNET_DB_QueryStatus 3694 enum GNUNET_DB_QueryStatus
3884 (*lookup_records_by_table)(void *cls, 3695 (*lookup_records_by_table)(void *cls,
3885 struct TALER_EXCHANGEDB_Session *session,
3886 enum TALER_EXCHANGEDB_ReplicatedTable table, 3696 enum TALER_EXCHANGEDB_ReplicatedTable table,
3887 uint64_t serial, 3697 uint64_t serial,
3888 TALER_EXCHANGEDB_ReplicationCallback cb, 3698 TALER_EXCHANGEDB_ReplicationCallback cb,
@@ -3894,20 +3704,18 @@ struct TALER_EXCHANGEDB_Plugin
3894 * replication. 3704 * replication.
3895 * 3705 *
3896 * @param cls closure 3706 * @param cls closure
3897 * @param session a session
3898 * @param tb table data to insert 3707 * @param tb table data to insert
3899 * @return transaction status code, #GNUNET_DB_STATUS_HARD_ERROR if 3708 * @return transaction status code, #GNUNET_DB_STATUS_HARD_ERROR if
3900 * @a table does not have a serial number 3709 * @a table does not have a serial number
3901 */ 3710 */
3902 enum GNUNET_DB_QueryStatus 3711 enum GNUNET_DB_QueryStatus
3903 (*insert_records_by_table)(void *cls, 3712 (*insert_records_by_table)(void *cls,
3904 struct TALER_EXCHANGEDB_Session *session,
3905 const struct TALER_EXCHANGEDB_TableData *td); 3713 const struct TALER_EXCHANGEDB_TableData *td);
3906 3714
3907 3715
3908 /** 3716 /**
3909 * Function called to grab a work shard on an operation @a op. Runs in its 3717 * Function called to grab a work shard on an operation @a op. Runs in its
3910 * own transaction (hence no session provided). 3718 * own transaction.
3911 * 3719 *
3912 * @param cls the @e cls of this struct with the plugin-specific state 3720 * @param cls the @e cls of this struct with the plugin-specific state
3913 * @param job_name name of the operation to grab a word shard for 3721 * @param job_name name of the operation to grab a word shard for
@@ -3930,7 +3738,6 @@ struct TALER_EXCHANGEDB_Plugin
3930 * Function called to persist that work on a shard was completed. 3738 * Function called to persist that work on a shard was completed.
3931 * 3739 *
3932 * @param cls the @e cls of this struct with the plugin-specific state 3740 * @param cls the @e cls of this struct with the plugin-specific state
3933 * @param session a session
3934 * @param job_name name of the operation to grab a word shard for 3741 * @param job_name name of the operation to grab a word shard for
3935 * @param start_row inclusive start row of the shard 3742 * @param start_row inclusive start row of the shard
3936 * @param end_row exclusive end row of the shard 3743 * @param end_row exclusive end row of the shard
@@ -3938,7 +3745,6 @@ struct TALER_EXCHANGEDB_Plugin
3938 */ 3745 */
3939 enum GNUNET_DB_QueryStatus 3746 enum GNUNET_DB_QueryStatus
3940 (*complete_shard)(void *cls, 3747 (*complete_shard)(void *cls,
3941 struct TALER_EXCHANGEDB_Session *session,
3942 const char *job_name, 3748 const char *job_name,
3943 uint64_t start_row, 3749 uint64_t start_row,
3944 uint64_t end_row); 3750 uint64_t end_row);