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 allBalances;
|
||||||
delete usedAddresses;
|
delete usedAddresses;
|
||||||
delete zaddresses;
|
delete zaddresses;
|
||||||
|
delete taddresses;
|
||||||
|
|
||||||
delete conn;
|
delete conn;
|
||||||
}
|
}
|
||||||
@@ -94,6 +95,17 @@ void RPC::setConnection(Connection* c) {
|
|||||||
refresh(true);
|
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) {
|
void RPC::getZAddresses(const std::function<void(json)>& cb) {
|
||||||
json payload = {
|
json payload = {
|
||||||
{"jsonrpc", "1.0"},
|
{"jsonrpc", "1.0"},
|
||||||
@@ -658,6 +670,22 @@ void RPC::refreshAddresses() {
|
|||||||
refreshSentZTrans();
|
refreshSentZTrans();
|
||||||
refreshReceivedZTrans(*zaddresses);
|
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.
|
// Function to create the data model and update the views, used below.
|
||||||
@@ -1137,3 +1165,10 @@ QString RPC::getDefaultSaplingAddress() {
|
|||||||
|
|
||||||
return QString();
|
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 TxTableModel* getTransactionsModel() { return transactionsTableModel; }
|
||||||
const QList<QString>* getAllZAddresses() { return zaddresses; }
|
const QList<QString>* getAllZAddresses() { return zaddresses; }
|
||||||
|
const QList<QString>* getAllTAddresses() { return taddresses; }
|
||||||
const QList<UnspentOutput>* getUTXOs() { return utxos; }
|
const QList<UnspentOutput>* getUTXOs() { return utxos; }
|
||||||
const QMap<QString, double>* getAllBalances() { return allBalances; }
|
const QMap<QString, double>* getAllBalances() { return allBalances; }
|
||||||
const QMap<QString, bool>* getUsedAddresses() { return usedAddresses; }
|
const QMap<QString, bool>* getUsedAddresses() { return usedAddresses; }
|
||||||
@@ -66,6 +67,7 @@ public:
|
|||||||
void noConnection();
|
void noConnection();
|
||||||
|
|
||||||
QString getDefaultSaplingAddress();
|
QString getDefaultSaplingAddress();
|
||||||
|
QString getDefaultTAddress();
|
||||||
|
|
||||||
void getAllPrivKeys(const std::function<void(QList<QPair<QString, QString>>)>);
|
void getAllPrivKeys(const std::function<void(QList<QPair<QString, QString>>)>);
|
||||||
|
|
||||||
@@ -90,6 +92,7 @@ private:
|
|||||||
void getZUnspent (const std::function<void(json)>& cb);
|
void getZUnspent (const std::function<void(json)>& cb);
|
||||||
void getTransactions (const std::function<void(json)>& cb);
|
void getTransactions (const std::function<void(json)>& cb);
|
||||||
void getZAddresses (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;
|
Connection* conn = nullptr;
|
||||||
QProcess* ezcashd = nullptr;
|
QProcess* ezcashd = nullptr;
|
||||||
@@ -98,6 +101,7 @@ private:
|
|||||||
QMap<QString, double>* allBalances = nullptr;
|
QMap<QString, double>* allBalances = nullptr;
|
||||||
QMap<QString, bool>* usedAddresses = nullptr;
|
QMap<QString, bool>* usedAddresses = nullptr;
|
||||||
QList<QString>* zaddresses = nullptr;
|
QList<QString>* zaddresses = nullptr;
|
||||||
|
QList<QString>* taddresses = nullptr;
|
||||||
|
|
||||||
QMap<QString, Tx> watchingOps;
|
QMap<QString, Tx> watchingOps;
|
||||||
|
|
||||||
|
|||||||
@@ -177,7 +177,9 @@ QJsonDocument AppDataServer::processGetInfo(MainWindow* mainWindow) {
|
|||||||
{"version", 1.0},
|
{"version", 1.0},
|
||||||
{"command", "getInfo"},
|
{"command", "getInfo"},
|
||||||
{"saplingAddress", mainWindow->getRPC()->getDefaultSaplingAddress()},
|
{"saplingAddress", mainWindow->getRPC()->getDefaultSaplingAddress()},
|
||||||
|
{"tAddress", mainWindow->getRPC()->getDefaultTAddress()},
|
||||||
{"balance", AppDataModel::getInstance()->getTotalBalance()},
|
{"balance", AppDataModel::getInstance()->getTotalBalance()},
|
||||||
|
{"tokenName", Settings::getTokenName()},
|
||||||
{"zecprice", Settings::getInstance()->getZECPrice()}
|
{"zecprice", Settings::getInstance()->getZECPrice()}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user