diff --git a/chain/wallet/handlers/DapXchangeOrderPurchase.cpp b/chain/wallet/handlers/DapXchangeOrderPurchase.cpp index 519014770c34655ec9f9056a2e8ffaea359b251f..04d40de2e960220aebf8ab18591f0b4ae7ff340f 100644 --- a/chain/wallet/handlers/DapXchangeOrderPurchase.cpp +++ b/chain/wallet/handlers/DapXchangeOrderPurchase.cpp @@ -13,18 +13,22 @@ QVariant DapXchangeOrderPurchase::respondToClient(const QVariant &args) { DapAbstractCommand::respondToClient(args); - QJsonObject resultObj; - auto resultJson = cmdList->xchangeOrderPurchase(args); auto resultStruct = cmdList->getJsonResult(resultJson, "DapXchangeOrderPurchase"); auto result = resultStruct.result; - auto failTransaction = [&result, this]() -> QVariant + auto failTransaction = [&args, &result, this]() -> QVariant { + QJsonObject obj; + obj.insert(SUCCESS,QJsonValue(false)); + obj.insert(MESSAGE,QJsonValue(result)); + QJsonObject resultObj; - resultObj.insert(SUCCESS,QJsonValue(false)); - resultObj.insert(MESSAGE,QJsonValue(result)); - QJsonDocument resultDoc(QJsonObject{{RESULT_KEY, resultObj}}); + resultObj.insert(RESULT_KEY, obj); + resultObj.insert(ERROR_KEY, result); + addWeb3Result(resultObj, args); + + QJsonDocument resultDoc(resultObj); return resultDoc.toJson(); }; @@ -57,12 +61,18 @@ QVariant DapXchangeOrderPurchase::respondToClient(const QVariant &args) qWarning() << "[DapXchangeOrderCreate] The hash string is empty."; return failTransaction(); } - - resultObj.insert(SUCCESS,QJsonValue(true)); - resultObj.insert(MESSAGE,QJsonValue("Exchange transaction has done")); - resultObj.insert(HASH, QJsonValue(hash)); - QJsonDocument resultDoc(QJsonObject{{RESULT_KEY, resultObj}}); + QJsonObject obj; + obj.insert(SUCCESS,QJsonValue(true)); + obj.insert(MESSAGE,QJsonValue("Exchange transaction has done")); + obj.insert(HASH, QJsonValue(hash)); + + QJsonObject resultObj; + resultObj.insert(RESULT_KEY, obj); + addWeb3Result(resultObj, args); + + QJsonDocument resultDoc(resultObj); + return resultDoc.toJson(); } @@ -76,4 +86,5 @@ void DapXchangeOrderPurchase::replyFromService() QJsonObject resultObj = replyObj[RESULT_KEY].toObject(); emit serviceResponded(resultObj); + } diff --git a/chain/wallet/handlers/stackCommand/DapXchangeOrderPurchaseStack.cpp b/chain/wallet/handlers/stackCommand/DapXchangeOrderPurchaseStack.cpp index f562171e84215a189a9097a753c545e15596891c..9ec51964f70d79b278dcfd857c12ba26d95c2735 100644 --- a/chain/wallet/handlers/stackCommand/DapXchangeOrderPurchaseStack.cpp +++ b/chain/wallet/handlers/stackCommand/DapXchangeOrderPurchaseStack.cpp @@ -9,6 +9,7 @@ DapXchangeOrderPurchaseStack::DapXchangeOrderPurchaseStack(const QString &asServ m_commandManager->setParentCalback([&](const QVariant &args) -> QVariant { return DapXchangeOrderPurchase::respondToClient(args); }); m_commandManager->setWalletNameCalback([&](const QStringList &list) -> QString { return list[2]; }); m_commandManager->setNetworkNameCalback([&](const QStringList &list) -> QString { return list[1];}); + m_commandManager->setWeb3UpdateCalback([&](QJsonObject& result, const QVariant& args){ addWeb3Result(result, args); }); DapTransactionQueueController* controller = DapTransactionQueueController::getTransactionController(); DapTransactionQueueController::ParamsFromCommand callbacks; @@ -26,6 +27,17 @@ DapXchangeOrderPurchaseStack::DapXchangeOrderPurchaseStack(const QString &asServ QVariant DapXchangeOrderPurchaseStack::respondToClient(const QVariant &args) { + QStringList params = args.toStringList(); + if(!params.contains("self") && params.contains(WEB3_KEY)) + { + QString fee = "50000000000000000"; + auto docFee = getFee()[params[1]]; + if(!docFee.validatorFeeList["median"].datoshi.isEmpty()) + fee = docFee.validatorFeeList["median"].datoshi; + + params.insert(4, fee); + return m_commandManager->respondToClient(params); + } return m_commandManager->respondToClient(args); }