summaryrefslogtreecommitdiff
path: root/src/ledger.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ledger.h')
-rw-r--r--src/ledger.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ledger.h b/src/ledger.h
index 30271d0..cf8f9b1 100644
--- a/src/ledger.h
+++ b/src/ledger.h
@@ -48,4 +48,15 @@ void ledger_voucher_hash(const unsigned char prev[32], int64_t org_id,
const struct ledger_row *rows, size_t nrows,
unsigned char out[32]);
+struct ledger_verify_result {
+ int64_t vouchers_checked;
+ int64_t first_bad_voucher_id; /* 0 = none */
+ int64_t unbalanced_vouchers;
+ int64_t first_unbalanced_voucher_id; /* 0 = none */
+};
+
+/* Recomputes every org's voucher hash chain (SCHEMA.md 7.1) and scans for
+ unbalanced vouchers. 0 = intact, 1 = broken, -1 = database error. */
+int ledger_verify(sqlite3 *db, struct ledger_verify_result *out, char **err);
+
#endif