Browse Source

Add t address support in rpc

pull/45/head
Aditya Kulkarni 5 years ago
parent
commit
c1ee223000
  1. 35
      src/rpc.cpp
  2. 4
      src/rpc.h
  3. 2
      src/websockets.cpp

35
src/rpc.cpp

@ -66,6 +66,7 @@ RPC::~RPC() {
delete allBalances;
delete usedAddresses;
delete zaddresses;
delete taddresses;
delete conn;
}
@ -94,6 +95,17 @@ void RPC::setConnection(Connection* c) {
refresh(true);
}
void RPC::getTAddresses(const std::function<void(json)>& cb) {
json payload = {
{"jsonrpc", "1.0"},
{"id", "someid"},
{"method", "getaddressesbyaccount"},
{"params", {""}}
};
conn->doRPCWithDefaultErrorHandling(payload, cb);
}
void RPC::getZAddresses(const std::function<void(json)>& cb) {
json payload = {
{"jsonrpc", "1.0"},
@ -658,6 +670,22 @@ void RPC::refreshAddresses() {
refreshSentZTrans();
refreshReceivedZTrans(*zaddresses);
});
delete taddresses;
taddresses = new QList<QString>();
getTAddresses([=] (json reply) {
for (auto& it : reply.get<json::array_t>()) {
auto addr = QString::fromStdString(it.get<json::string_t>());
if (Settings::isTAddress(addr))
taddresses->push_back(addr);
}
// If there are no t Addresses, create one
newTaddr([=] (json reply) {
// What if taddress gets deleted before this executes?
taddresses->append(QString::fromStdString(reply.get<json::string_t>()));
});
});
}
// Function to create the data model and update the views, used below.
@ -1137,3 +1165,10 @@ QString RPC::getDefaultSaplingAddress() {
return QString();
}
QString RPC::getDefaultTAddress() {
if (getAllTAddresses()->length() > 0)
return getAllTAddresses()->at(0);
else
return QString();
}

4
src/rpc.h

@ -50,6 +50,7 @@ public:
const TxTableModel* getTransactionsModel() { return transactionsTableModel; }
const QList<QString>* getAllZAddresses() { return zaddresses; }
const QList<QString>* getAllTAddresses() { return taddresses; }
const QList<UnspentOutput>* getUTXOs() { return utxos; }
const QMap<QString, double>* getAllBalances() { return allBalances; }
const QMap<QString, bool>* getUsedAddresses() { return usedAddresses; }
@ -66,6 +67,7 @@ public:
void noConnection();
QString getDefaultSaplingAddress();
QString getDefaultTAddress();
void getAllPrivKeys(const std::function<void(QList<QPair<QString, QString>>)>);
@ -90,6 +92,7 @@ private:
void getZUnspent (const std::function<void(json)>& cb);
void getTransactions (const std::function<void(json)>& cb);
void getZAddresses (const std::function<void(json)>& cb);
void getTAddresses (const std::function<void(json)>& cb);
Connection* conn = nullptr;
QProcess* ezcashd = nullptr;
@ -98,6 +101,7 @@ private:
QMap<QString, double>* allBalances = nullptr;
QMap<QString, bool>* usedAddresses = nullptr;
QList<QString>* zaddresses = nullptr;
QList<QString>* taddresses = nullptr;
QMap<QString, Tx> watchingOps;

2
src/websockets.cpp

@ -177,7 +177,9 @@ QJsonDocument AppDataServer::processGetInfo(MainWindow* mainWindow) {
{"version", 1.0},
{"command", "getInfo"},
{"saplingAddress", mainWindow->getRPC()->getDefaultSaplingAddress()},
{"tAddress", mainWindow->getRPC()->getDefaultTAddress()},
{"balance", AppDataModel::getInstance()->getTotalBalance()},
{"tokenName", Settings::getTokenName()},
{"zecprice", Settings::getInstance()->getZECPrice()}
});
}

Loading…
Cancel
Save