Add t address support in rpc
This commit is contained in:
35
src/rpc.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();
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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()}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user