From 618625bc00fa8727befd146076b2d90dfd6b9f3b Mon Sep 17 00:00:00 2001 From: Deniod Date: Sat, 13 Jan 2024 13:49:12 +0100 Subject: [PATCH] seperate dust and normal transaction --- src/controller.cpp | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/controller.cpp b/src/controller.cpp index 676e063..6908fb4 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -140,8 +140,10 @@ void Controller::fillTxJsonParams(json& allRecepients, Tx tx) json rec = json::object(); //creating the JSON dust parameters in a std::vector to iterate over there during tx - std::vector dust(8); - dust.resize(8, json::object()); + std::vector dustTransactions(8); + for (auto& dust : dustTransactions) { + dust = json::object(); + } // Create Sietch zdust addr again to not use it twice. // Using DataStore singelton, to store the data outside of lambda, bing bada boom :D @@ -156,7 +158,7 @@ void Controller::fillTxJsonParams(json& allRecepients, Tx tx) // Using DataStore singelton, to store the data into the dust. for(uint8_t i = 0; i < 8; i++) { - dust.at(i)["address"] = DataStore::getSietchDataStore()->getData(QString("Sietch" + QString(i))).toStdString(); + dustTransactions.at(i)["address"] = DataStore::getSietchDataStore()->getData(QString("Sietch" + QString(i))).toStdString(); } DataStore::getSietchDataStore()->clear(); // clears the datastore @@ -184,15 +186,15 @@ void Controller::fillTxJsonParams(json& allRecepients, Tx tx) randomString.append(nextChar); } - dust.at(i)["memo"] = randomString.toStdString(); + dustTransactions.at(i)["memo"] = randomString.toStdString(); } CAmount balanceAvailable = getModel()->getBalVerified(); - + // Create more Notes if spendableNotesCount < 30 and enough funds are available - if (spendableNotesCount < 30 && balanceAvailable.toDecimalString().toDouble() > (dust.size() * 0.0001)) { + if (spendableNotesCount < 30 && balanceAvailable.toDecimalString().toDouble() > (dustTransactions.size() * 0.0001)) { // Create extra transaction - for (size_t i = 0; i < dust.size(); ++i) { + for (size_t i = 0; i < dustTransactions.size(); ++i) { // Generate random memo QString randomMemo; for (int j = 0; j < randomStringLength; ++j) { @@ -200,28 +202,27 @@ void Controller::fillTxJsonParams(json& allRecepients, Tx tx) randomMemo.append(possibleCharacters.at(index)); } - dust.at(i)["address"] = addressWithMaxValue.toStdString(); - dust.at(i)["amount"] = 10000; - dust.at(i)["memo"] = randomMemo.toStdString(); + dustTransactions.at(i)["address"] = addressWithMaxValue.toStdString(); + dustTransactions.at(i)["amount"] = 10000; + dustTransactions.at(i)["memo"] = randomMemo.toStdString(); } } else { // Set amount for real Sietch transaction to 0 - for (auto &it : dust) { + for (auto &it : dustTransactions) { it["amount"] = 0; } } // For each addr/amt/memo, construct the JSON and also build the confirm dialog box - for (int i=0; i < tx.toAddrs.size(); i++) - { - auto toAddr = tx.toAddrs[i]; + for (const auto& toAddr : tx.toAddrs) { + json rec = json::object(); rec["address"] = toAddr.addr.toStdString(); rec["amount"] = toAddr.amount.toqint64(); if (Settings::isZAddress(toAddr.addr) && !toAddr.memo.trimmed().isEmpty()) - rec["memo"] = toAddr.memo.toStdString(); - } + rec["memo"] = toAddr.memo.toStdString(); allRecepients.push_back(rec); + } int decider = rand() % 100 + 1; @@ -231,7 +232,7 @@ void Controller::fillTxJsonParams(json& allRecepients, Tx tx) } for (int i = 0; i < dustCount; ++i) { - allRecepients.insert(allRecepients.begin(), dust.at(i)); + allRecepients.insert(allRecepients.begin(), dustTransactions.at(i)); } }