// Copyright (c) 2019-2020 The Hush developers // Distributed under the GPLv3 software license, see the accompanying // file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html #ifndef HUSH_NOTARISATIONDB_H #define HUSH_NOTARISATIONDB_H #include "uint256.h" #include "dbwrapper.h" #include "cc/eval.h" class NotarisationDB : public CDBWrapper { public: NotarisationDB(size_t nCacheSize, bool fMemory = false, bool fWipe = false); }; extern NotarisationDB *pnotarisations; typedef std::pair Notarisation; typedef std::vector NotarisationsInBlock; NotarisationsInBlock ScanBlockNotarisations(const CBlock &block, int nHeight); bool GetBlockNotarisations(uint256 blockHash, NotarisationsInBlock &nibs); bool GetBackNotarisation(uint256 notarisationHash, Notarisation &n); void WriteBackNotarisations(const NotarisationsInBlock notarisations, CDBBatch &batch); void EraseBackNotarisations(const NotarisationsInBlock notarisations, CDBBatch &batch); int ScanNotarisationsDB(int height, std::string symbol, int scanLimitBlocks, Notarisation& out); int ScanNotarisationsDB2(int height, std::string symbol, int scanLimitBlocks, Notarisation& out); #endif /* HUSH_NOTARISATIONDB_H */