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