#ifndef ZCASHDRPC_H #define ZCASHDRPC_H #include "precompiled.h" #include "connection.h" using json = nlohmann::json; struct TransactionItem { QString type; qint64 datetime; QString address; QString txid; double amount; long confirmations; QString fromAddr; QString memo; }; class ZcashdRPC { public: ZcashdRPC(); ~ZcashdRPC(); bool haveConnection(); void setConnection(Connection* c); Connection* getConnection() { return conn; } void fetchTransparentUnspent (const std::function& cb); void fetchZUnspent (const std::function& cb); void fetchTransactions (const std::function& cb); void fetchZAddresses (const std::function& cb); void fetchTAddresses (const std::function& cb); void fetchReceivedZTrans(QList zaddrs, const std::function usedAddrFn, const std::function)> txdataFn); void fetchReceivedTTrans(QList txids, QList sentZtxs, const std::function)> txdataFn); void fetchInfo(const std::function& cb, const std::function& err); void fetchBlockchainInfo(const std::function& cb); void fetchNetSolOps(const std::function cb); void fetchOpStatus(const std::function& cb); void fetchMigrationStatus(const std::function& cb); void setMigrationStatus(bool enabled); void fetchBalance(const std::function& cb); void createNewZaddr(bool sapling, const std::function& cb); void createNewTaddr(const std::function& cb); void fetchZPrivKey(QString addr, const std::function& cb); void fetchTPrivKey(QString addr, const std::function& cb); void importZPrivKey(QString addr, bool rescan, const std::function& cb); void importTPrivKey(QString addr, bool rescan, const std::function& cb); void validateAddress(QString address, const std::function& cb); void fetchAllPrivKeys(const std::function>)>); void sendZTransaction(json params, const std::function& cb, const std::function& err); private: Connection* conn = nullptr; }; #endif // ZCASHDRPC_H