aboutsummaryrefslogtreecommitdiff
path: root/src/libwalletqt/Wallet.cpp
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2021-02-18 15:01:14 -0500
committerluigi1111 <luigi1111w@gmail.com>2021-02-18 15:01:14 -0500
commit8b8948954daa31064659b0793c13350dac6346e5 (patch)
treee9f247681bf5d097839f05d5e03527409f3f509a /src/libwalletqt/Wallet.cpp
parent2c763f50148b1d476f76fe69a369167e57890eda (diff)
parentb20b956e15184d39925ac415020ea886c7d47e87 (diff)
downloadmonzero-gui-8b8948954daa31064659b0793c13350dac6346e5.tar.gz
monzero-gui-8b8948954daa31064659b0793c13350dac6346e5.tar.xz
monzero-gui-8b8948954daa31064659b0793c13350dac6346e5.zip
Merge pull request #3327
b20b956 Wallet: estimateTransactionFeeAsync - multi dest support (xiphon)
Diffstat (limited to 'src/libwalletqt/Wallet.cpp')
-rw-r--r--src/libwalletqt/Wallet.cpp35
1 files changed, 25 insertions, 10 deletions
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp
index ae0f2367..e9700143 100644
--- a/src/libwalletqt/Wallet.cpp
+++ b/src/libwalletqt/Wallet.cpp
@@ -641,17 +641,32 @@ void Wallet::disposeTransaction(UnsignedTransaction *t)
delete t;
}
-void Wallet::estimateTransactionFeeAsync(const QString &destination,
- quint64 amount,
- PendingTransaction::Priority priority,
- const QJSValue &callback)
+void Wallet::estimateTransactionFeeAsync(
+ const QVector<QString> &destinationAddresses,
+ const QVector<quint64> &amounts,
+ PendingTransaction::Priority priority,
+ const QJSValue &callback)
{
- m_scheduler.run([this, destination, amount, priority] {
- const uint64_t fee = m_walletImpl->estimateTransactionFee(
- {std::make_pair(destination.toStdString(), amount)},
- static_cast<Monero::PendingTransaction::Priority>(priority));
- return QJSValueList({QString::fromStdString(Monero::Wallet::displayAmount(fee))});
- }, callback);
+ m_scheduler.run(
+ [this, destinationAddresses, amounts, priority] {
+ if (destinationAddresses.size() != amounts.size())
+ {
+ return QJSValueList({""});
+ }
+
+ std::vector<std::pair<std::string, uint64_t>> destinations;
+ destinations.reserve(destinationAddresses.size());
+ for (size_t index = 0; index < destinationAddresses.size(); ++index)
+ {
+ destinations.emplace_back(std::make_pair(destinationAddresses[index].toStdString(), amounts[index]));
+ }
+
+ const uint64_t fee = m_walletImpl->estimateTransactionFee(
+ destinations,
+ static_cast<Monero::PendingTransaction::Priority>(priority));
+ return QJSValueList({QString::fromStdString(Monero::Wallet::displayAmount(fee))});
+ },
+ callback);
}
TransactionHistory *Wallet::history() const