// Copyright 2019-2024 The Hush developers // Released under the GPLv3 #ifndef hushDRPC_H #define hushDRPC_H #include "precompiled.h" #include "camount.h" #include "connection.h" using json = nlohmann::json; // Since each transaction can contain multiple outputs, we separate them out individually // into a struct with address, amount, memo struct TransactionItemDetail { QString address; CAmount amount; QString memo; }; // Represents a row in the transactions table. Note that each transaction can contain // multiple addresses (i.e., Multiple TransctionItemDetail) struct TransactionItem { QString type; qint64 datetime; QString address; QString txid; long confirmations; QList items; }; class LiteInterface { public: LiteInterface(); ~LiteInterface(); bool haveConnection(); void setConnection(Connection* c); Connection* getConnection() { return conn; } void fetchUnspent (const std::function& cb); void fetchTransactions (const std::function& cb); void fetchAddresses (const std::function& cb); void fetchInfo(const std::function& cb, const std::function& err); void fetchLatestBlock(const std::function& cb, const std::function& err); void fetchBalance(const std::function& cb); void createNewZaddr(bool sapling, const std::function& cb); void createNewTaddr(const std::function& cb); void createNewSietchZaddr(const std::function& cb); void fetchPrivKey(QString addr, const std::function& cb); void fetchAllPrivKeys(const std::function); void fetchSeed(const std::function&); void saveWallet(const std::function& cb); void clearWallet(const std::function& cb); void shield(const std::function& cb); void fetchWalletEncryptionStatus(const std::function& cb); void fetchSupply(const std::function& cb); void encryptWallet(QString password, const std::function& cb); void unlockWallet(QString password, const std::function& cb); void removeWalletEncryption(QString password, const std::function& cb); void importZPrivKey(QString addr, const std::function& cb); void importTPrivKey(QString addr, const std::function& cb); void sendTransaction(QString params, const std::function& cb, const std::function& err); private: Connection* conn = nullptr; }; #endif // hushDRPC_H