lez-explorer-ui/src/services/MockIndexerService.h

45 lines
1.5 KiB
C
Raw Normal View History

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
QString endpoint() const override;
void setEndpoint(const QString& endpoint) override;
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 getLastFinalizedBlockId() override;
2026-04-02 00:19:02 +03:00
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;
QString m_endpoint = IndexerService::defaultEndpoint();
2026-04-02 00:19:02 +03:00
};