#pragma once #include "IndexerService.h" #include #include class MockIndexerService : public IndexerService { Q_OBJECT public: explicit MockIndexerService(QObject* parent = nullptr); std::optional getAccount(const QString& accountId) override; std::optional getBlockById(quint64 blockId) override; std::optional getBlockByHash(const QString& hash) override; std::optional getTransaction(const QString& hash) override; QVector getBlocks(std::optional before, int limit) override; quint64 getLatestBlockId() override; QVector getTransactionsByAccount(const QString& accountId, int offset, int limit) override; SearchResults search(const QString& query) override; private slots: void onGenerateBlock(); private: void generateData(); QString randomHash(); QString randomAccountId(); Transaction generatePublicTransaction(); Transaction generatePrivacyPreservingTransaction(); Transaction generateProgramDeploymentTransaction(); Block generateBlock(quint64 blockId, const QString& prevHash); QVector m_blocks; QMap m_blocksByHash; QMap m_transactionsByHash; QMap m_accounts; QTimer m_blockTimer; };