#ifndef DATAMODEL_H #define DATAMODEL_H #include "precompiled.h" struct UnspentOutput { QString address; QString txid; QString amount; int blockCreated; bool spendable; }; // Data class that holds all the data about the wallet. class DataModel { public: void replaceZaddresses(QList* newZ); void replaceTaddresses(QList* newZ); void replaceBalances(QMap* newBalances); void replaceUTXOs(QList* utxos); void markAddressUsed(QString address); void setLatestBlock(int blockHeight); int getLatestBlock() { return this->latestBlock; } const QList getAllZAddresses() { QReadLocker locker(lock); return *zaddresses; } const QList getAllTAddresses() { QReadLocker locker(lock); return *taddresses; } const QList getUTXOs() { QReadLocker locker(lock); return *utxos; } const QMap getAllBalances() { QReadLocker locker(lock); return *balances; } const QMap getUsedAddresses() { QReadLocker locker(lock); return *usedAddresses; } DataModel(); ~DataModel(); private: int latestBlock; QList* utxos = nullptr; QMap* balances = nullptr; QMap* usedAddresses = nullptr; QList* zaddresses = nullptr; QList* taddresses = nullptr; QReadWriteLock* lock; }; #endif // DATAMODEL_H