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();
|
||||
}
|
||||
Reference in New Issue
Block a user