wowlet/src/utils/daemonrpc.h

52 lines
1.4 KiB
C
Raw Permalink Normal View History

2020-10-16 04:05:05 +01:00
// SPDX-License-Identifier: BSD-3-Clause
2020-12-26 19:56:06 +00:00
// Copyright (c) 2020-2021, The Monero Project.
2020-10-16 04:05:05 +01:00
2021-03-30 10:52:29 +01:00
#ifndef WOWLET_DAEMON_RPC_H
#define WOWLET_DAEMON_RPC_H
2020-10-16 04:05:05 +01:00
#include <QObject>
#include "utils/networking.h"
class DaemonRpc : public QObject {
Q_OBJECT
public:
enum Endpoint {
2020-11-10 11:38:37 +00:00
SEND_RAW_TRANSACTION = 0,
GET_TRANSACTIONS
2020-10-16 04:05:05 +01:00
};
struct DaemonResponse {
explicit DaemonResponse(bool ok, Endpoint endpoint, QString status, QJsonObject obj = {})
: ok(ok), endpoint(endpoint), status(std::move(status)), obj(std::move(obj)) {};
bool ok;
DaemonRpc::Endpoint endpoint;
QString status;
QJsonObject obj;
};
explicit DaemonRpc(QObject *parent, UtilsNetworking *network, QString daemonAddress);
void sendRawTransaction(const QString &tx_as_hex, bool do_not_relay = false, bool do_sanity_checks = true);
2020-11-10 11:38:37 +00:00
void getTransactions(const QStringList &txs_hashes, bool decode_as_json = false, bool prune = false);
2020-10-16 04:05:05 +01:00
void setDaemonAddress(const QString &daemonAddress);
void setNetwork(UtilsNetworking *network);
signals:
void ApiResponse(DaemonResponse resp);
private slots:
void onResponse(QNetworkReply *reply, Endpoint endpoint);
QString onSendRawTransactionFailed(const QJsonObject &obj);
private:
UtilsNetworking *m_network;
QString m_daemonAddress;
};
2021-03-30 10:52:29 +01:00
#endif //WOWLET_DAEMON_RPC_H