1 #ifndef CALLCONTRACT_H 2 #define CALLCONTRACT_H 3 4 #include <QWidget> 5 6 class PlatformStyle; 7 class WalletModel; 8 class ClientModel; 9 class ContractTableModel; 10 class ExecRPCCommand; 11 class ABIFunctionField; 12 class ContractABI; 13 class TabBarInfo; 14 15 namespace Ui { 16 class CallContract; 17 } 18 19 class CallContract : public QWidget 20 { 21 Q_OBJECT 22 23 public: 24 explicit CallContract(const PlatformStyle *platformStyle, QWidget *parent = 0); 25 ~CallContract(); 26 27 void setClientModel(ClientModel *clientModel); 28 void setModel(WalletModel *model); 29 bool isValidContractAddress(); 30 bool isValidInterfaceABI(); 31 bool isDataValid(); 32 void setContractAddress(const QString &address); 33 34 Q_SIGNALS: 35 36 public Q_SLOTS: 37 void on_clearAllClicked(); 38 void on_callContractClicked(); 39 void on_updateCallContractButton(); 40 void on_newContractABI(); 41 void on_saveInfoClicked(); 42 void on_loadInfoClicked(); 43 void on_pasteAddressClicked(); 44 void on_contractAddressChanged(); 45 46 private: 47 QString toDataHex(int func, QString& errorMessage); 48 49 private: 50 Ui::CallContract *ui; 51 WalletModel* m_model; 52 ClientModel* m_clientModel; 53 ContractTableModel* m_contractModel; 54 ExecRPCCommand* m_execRPCCommand; 55 ABIFunctionField* m_ABIFunctionField; 56 ContractABI* m_contractABI; 57 TabBarInfo* m_tabInfo; 58 const PlatformStyle* m_platformStyle; 59 int m_results; 60 }; 61 62 #endif // CALLCONTRACT_H 63