diff options
Diffstat (limited to 'src/ledger.h')
| -rw-r--r-- | src/ledger.h | 11 |
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 |
