diff options
author | Carl Dong <contact@carldong.me> | 2022-05-25 18:02:54 -0400 |
---|---|---|
committer | Carl Dong <contact@carldong.me> | 2022-06-02 12:22:46 -0400 |
commit | d87784ac87364fc977bbf9769c8bdb72dea8cbf9 (patch) | |
tree | 11ea6e0e53dbd79ec701ea2a12f916becb29cb31 /src/kernel | |
parent | 265d6393bf9ef52e7ef7de97ca9c031da82a5ad1 (diff) | |
download | bitcoin-d87784ac87364fc977bbf9769c8bdb72dea8cbf9.tar.xz |
kernel: SanityChecks: Return an error struct
This reduces libbitcoinkernel's coupling with ui_interface and
translation.
Diffstat (limited to 'src/kernel')
-rw-r--r-- | src/kernel/checks.cpp | 15 | ||||
-rw-r--r-- | src/kernel/checks.h | 10 |
2 files changed, 15 insertions, 10 deletions
diff --git a/src/kernel/checks.cpp b/src/kernel/checks.cpp index a25617bea5..2a1dd3bfa2 100644 --- a/src/kernel/checks.cpp +++ b/src/kernel/checks.cpp @@ -5,29 +5,26 @@ #include <kernel/checks.h> #include <key.h> -#include <node/ui_interface.h> #include <random.h> #include <util/time.h> -#include <util/translation.h> - -#include <memory> namespace kernel { -bool SanityChecks(const Context&) { +std::optional<SanityCheckError> SanityChecks(const Context&) +{ if (!ECC_InitSanityCheck()) { - return InitError(Untranslated("Elliptic curve cryptography sanity check failure. Aborting.")); + return SanityCheckError::ERROR_ECC; } if (!Random_SanityCheck()) { - return InitError(Untranslated("OS cryptographic RNG sanity check failure. Aborting.")); + return SanityCheckError::ERROR_RANDOM; } if (!ChronoSanityCheck()) { - return InitError(Untranslated("Clock epoch mismatch. Aborting.")); + return SanityCheckError::ERROR_CHRONO; } - return true; + return std::nullopt; } } diff --git a/src/kernel/checks.h b/src/kernel/checks.h index 786281fa2c..80b207f607 100644 --- a/src/kernel/checks.h +++ b/src/kernel/checks.h @@ -5,14 +5,22 @@ #ifndef BITCOIN_KERNEL_CHECKS_H #define BITCOIN_KERNEL_CHECKS_H +#include <optional> + namespace kernel { struct Context; +enum class SanityCheckError { + ERROR_ECC, + ERROR_RANDOM, + ERROR_CHRONO, +}; + /** * Ensure a usable environment with all necessary library support. */ -bool SanityChecks(const Context&); +std::optional<SanityCheckError> SanityChecks(const Context&); } |