// Copyright (c) 2011-2020 The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_QT_PSBTOPERATIONSDIALOG_H #define BITCOIN_QT_PSBTOPERATIONSDIALOG_H #include #include #include #include namespace Ui { class PSBTOperationsDialog; } /** Dialog showing transaction details. */ class PSBTOperationsDialog : public QDialog { Q_OBJECT public: explicit PSBTOperationsDialog(QWidget* parent, WalletModel* walletModel, ClientModel* clientModel); ~PSBTOperationsDialog(); void openWithPSBT(PartiallySignedTransaction psbtx); public Q_SLOTS: void signTransaction(); void broadcastTransaction(); void copyToClipboard(); void saveTransaction(); private: Ui::PSBTOperationsDialog* m_ui; PartiallySignedTransaction m_transaction_data; WalletModel* m_wallet_model; ClientModel* m_client_model; enum class StatusLevel { INFO, WARN, ERR }; size_t couldSignInputs(const PartiallySignedTransaction &psbtx); void updateTransactionDisplay(); std::string renderTransaction(const PartiallySignedTransaction &psbtx); void showStatus(const QString &msg, StatusLevel level); void showTransactionStatus(const PartiallySignedTransaction &psbtx); }; #endif // BITCOIN_QT_PSBTOPERATIONSDIALOG_H