#ifndef ZCASHDRPC_H #define ZCASHDRPC_H #include "precompiled.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; qint64 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 fetchBalance(const std::function& cb); void createNewZaddr(bool sapling, const std::function& cb); void createNewTaddr(const std::function& cb); void fetchPrivKey(QString addr, const std::function& cb); void fetchAllPrivKeys(const std::function); //void importZPrivKey(QString addr, bool rescan, const std::function& cb); //void importTPrivKey(QString addr, bool rescan, const std::function& cb); void sendTransaction(QString params, const std::function& cb, const std::function& err); private: Connection* conn = nullptr; }; #endif // ZCASHDRPC_H