aboutsummaryrefslogtreecommitdiff
path: root/src/entity.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/entity.cpp')
-rw-r--r--src/entity.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/entity.cpp b/src/entity.cpp
index e90e0f2..59febac 100644
--- a/src/entity.cpp
+++ b/src/entity.cpp
@@ -62,4 +62,16 @@ void Block::unserialize(DataStream &s, HotStuffCore *hsc) {
this->hash = salticidae::get_hash(*this);
}
+bool Block::verify(const HotStuffCore *hsc) const {
+ return qc && qc->verify(hsc->get_config());
+}
+
+promise_t Block::verify(const HotStuffCore *hsc, VeriPool &vpool) const {
+ if (!qc)
+ return promise_t([](promise_t &pm) { pm.resolve(false); });
+ if (qc->get_obj_hash() == hsc->get_genesis()->get_hash())
+ return promise_t([](promise_t &pm) { pm.resolve(true); });
+ return qc->verify(hsc->get_config(), vpool);
+}
+
}