Add t address support in rpc

This commit is contained in:
Aditya Kulkarni
2019-01-23 15:13:02 -08:00
parent 3ac863ef22
commit c1ee223000
3 changed files with 41 additions and 0 deletions

View File

@@ -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();
}