diff --git a/CellFrameDashboardGUI/DapCommandController.cpp b/CellFrameDashboardGUI/DapCommandController.cpp index 5c430992f29f0d5a401c3b9aedad66300972c67b..88d41c62c99f4ca921366fe4d705dede0f5fa745 100644 --- a/CellFrameDashboardGUI/DapCommandController.cpp +++ b/CellFrameDashboardGUI/DapCommandController.cpp @@ -79,12 +79,17 @@ void DapCommandController::changeCurrentNetwork(const QString& aNetwork) m_DAPRpcSocket->invokeRemoteMethod("RPCServer.changeCurrentNetwork", aNetwork); } -void DapCommandController::sendTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aToken, const QString& aNetwork, const quint64 aValue) +void DapCommandController::sendMempool(const QString& aFromWallet, const QString& aToAddress, const QString& aToken, const QString& aNetwork, const quint64 aValue) { DapRpcServiceReply *reply = m_DAPRpcSocket->invokeRemoteMethod("RPCServer.createTransaction", aFromWallet, aToAddress, aToken, aNetwork, aValue); connect(reply, SIGNAL(finished()), this, SLOT(processGetResultTransaction())); } +void DapCommandController::takeFromMempool(const QString& aNetwork) +{ + m_DAPRpcSocket->invokeRemoteMethod("RPCServer.takeFromMempool", aNetwork); +} + void DapCommandController::setNewWalletData(const QVariant& aData) { emit sigWalletData(QByteArray::fromHex(aData.toByteArray())); diff --git a/CellFrameDashboardGUI/DapCommandController.h b/CellFrameDashboardGUI/DapCommandController.h index ea41c1a7c13c78b3623d7f4dd1129024a35cb019..285936209637ccb1cc1dc2c27bbf7bf2b658aa2e 100644 --- a/CellFrameDashboardGUI/DapCommandController.h +++ b/CellFrameDashboardGUI/DapCommandController.h @@ -180,7 +180,9 @@ public slots: void requestWalletData(); - void sendTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aToken, const QString& aNetwork, const quint64 aValue); + void sendMempool(const QString& aFromWallet, const QString& aToAddress, const QString& aToken, const QString& aNetwork, const quint64 aValue); + + void takeFromMempool(const QString& aNetwork); }; #endif // COMMANDCONTROLLER_H diff --git a/CellFrameDashboardGUI/DapServiceController.cpp b/CellFrameDashboardGUI/DapServiceController.cpp index 1f21aa904d10e671e13297f0ea5bd8be07231921..416dcc08207c259b67d2dd7f786c144ba3cb8b67 100644 --- a/CellFrameDashboardGUI/DapServiceController.cpp +++ b/CellFrameDashboardGUI/DapServiceController.cpp @@ -73,7 +73,8 @@ void DapServiceController::init(DapServiceClient *apDapServiceClient) connect(m_pDapCommandController, &DapCommandController::sigWalletData, &DapChainWalletModel::instance(), &DapChainWalletModel::setWalletData); - connect(&DapTransaction::instance(), &DapTransaction::sendTransaction, m_pDapCommandController, &DapCommandController::sendTransaction); + connect(&DapTransaction::instance(), &DapTransaction::sendMempool, m_pDapCommandController, &DapCommandController::sendMempool); + connect(&DapTransaction::instance(), &DapTransaction::sendToken, m_pDapCommandController, &DapCommandController::takeFromMempool); connect(m_pDapCommandController, &DapCommandController::sendResponseTransaction, &DapTransaction::instance(), &DapTransaction::receiveResult); } diff --git a/CellFrameDashboardGUI/DapTransaction.cpp b/CellFrameDashboardGUI/DapTransaction.cpp index 858e352e37a07539134273e3c049e94fa1b0a7ec..372c3811f8e3f1c7ba2eee6489fab046dee62026 100644 --- a/CellFrameDashboardGUI/DapTransaction.cpp +++ b/CellFrameDashboardGUI/DapTransaction.cpp @@ -13,7 +13,12 @@ DapTransaction& DapTransaction::instance() void DapTransaction::createRequestTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aToken, const QString& aNetwork, const quint64 aValue) { - emit sendTransaction(aFromWallet, aToAddress, aToken, aNetwork, aValue); + emit sendMempool(aFromWallet, aToAddress, aToken, aNetwork, aValue); +} + +void DapTransaction::sendToken(const QString& aNetwork) +{ + emit sendTransaction(aNetwork); } void DapTransaction::receiveResult(const bool aSuccessful) diff --git a/CellFrameDashboardGUI/DapTransaction.h b/CellFrameDashboardGUI/DapTransaction.h index a370b0d246a8706a91bbf3e457534a99f3ae5447..23fa41ff02cc89a035041dbf766918b262080137 100644 --- a/CellFrameDashboardGUI/DapTransaction.h +++ b/CellFrameDashboardGUI/DapTransaction.h @@ -6,17 +6,20 @@ class DapTransaction : public QObject { Q_OBJECT + public: explicit DapTransaction(QObject *parent = nullptr); static DapTransaction& instance(); public slots: void createRequestTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aToken, const QString& aNetwork, const quint64 aValue); + void sendToken(const QString& aNetwork); void receiveResult(const bool aSuccessful); signals: void sendResult(bool result); - void sendTransaction(const QString& fromWallet, const QString& toAddress, const QString& token, const QString& network, const quint64 value); + void sendMempool(const QString& fromWallet, const QString& toAddress, const QString& token, const QString& network, const quint64 value); + void sendTransaction(const QString& network); }; #endif // DAPTRANSACTION_H diff --git a/CellFrameDashboardService/DapChainDashboardService.cpp b/CellFrameDashboardService/DapChainDashboardService.cpp index 28aa41c4993274d15c4f561bae781f45614d977e..d33f84b96effb9a08199c5e960ba5fcac1ec3de6 100755 --- a/CellFrameDashboardService/DapChainDashboardService.cpp +++ b/CellFrameDashboardService/DapChainDashboardService.cpp @@ -229,3 +229,8 @@ bool DapChainDashboardService::createTransaction(const QString& aFromWallet, con { return m_pDapChainTransaction->createTransaction(aFromWallet, aToAddress, aTokenName, aNetwork, aValue); } + +void DapChainDashboardService::takeFromMempool(const QString& aNetwork) +{ + m_pDapChainTransaction->takeFromMempool(aNetwork); +} diff --git a/CellFrameDashboardService/DapChainDashboardService.h b/CellFrameDashboardService/DapChainDashboardService.h index 825e5b2d54e6a8a75f5c7567fc499f73a9397e18..e6e039b8b88ae53ef1bab7b09ef57e56093dd1ad 100755 --- a/CellFrameDashboardService/DapChainDashboardService.h +++ b/CellFrameDashboardService/DapChainDashboardService.h @@ -143,6 +143,8 @@ public slots: bool createTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aTokenName, const QString& aNetwork, const quint64 aValue); + void takeFromMempool(const QString& aNetwork); + private slots: /// Request new history request by handle wallet's name void doRequestWallets(); diff --git a/CellFrameDashboardService/DapChainTransaction.cpp b/CellFrameDashboardService/DapChainTransaction.cpp index 4bbc0f5ff0de6f035bd21205c85f4321293409cc..62f0ef9638aec207d30134d2e390f31de732ff15 100644 --- a/CellFrameDashboardService/DapChainTransaction.cpp +++ b/CellFrameDashboardService/DapChainTransaction.cpp @@ -21,14 +21,18 @@ bool DapChainTransaction::createTransaction(const QString& aFromWallet, const QS QRegExp rx("transfer=(\\w+)"); rx.indexIn(result, 0); - if(rx.cap(1) == "Ok") { - - QProcess processMempool; - processMempool.start(QString("%1 mempool_proc -net " + aNetwork +" -chain gdb").arg(CLI_PATH)); - processMempool.waitForFinished(-1); - processMempool.readAll(); + if(rx.cap(1) == "Ok") + { return true; } return false; } + +void DapChainTransaction::takeFromMempool(const QString& aNetwork) +{ + QProcess processMempool; + processMempool.start(QString("%1 mempool_proc -net " + aNetwork +" -chain gdb").arg(CLI_PATH)); + processMempool.waitForFinished(-1); + processMempool.readAll(); +} diff --git a/CellFrameDashboardService/DapChainTransaction.h b/CellFrameDashboardService/DapChainTransaction.h index 0434dee20c139f1dbb4fa2dae43b1a601f4d5a15..7b13307923cd109153ee109870d2b1f72abafa9b 100644 --- a/CellFrameDashboardService/DapChainTransaction.h +++ b/CellFrameDashboardService/DapChainTransaction.h @@ -20,6 +20,8 @@ public: /// @param sum for transaction /// @return result of trying to do transaction bool createTransaction(const QString& aFromWallet, const QString& aToAddress, const QString& aTokenName, const QString& aNetwork, const quint64 aValue) const; + + void takeFromMempool(const QString& aNetwork); }; #endif // DAPCHAINTRANSACTION_H