send: improve error messages for not_enough_unlocked_money

This commit is contained in:
tobtoht 2023-10-26 01:23:22 +02:00
parent 4e99b53e87
commit 9b5aae486f
No known key found for this signature in database
GPG key ID: E45B10DD027D2472
3 changed files with 14 additions and 2 deletions

2
monero

@ -1 +1 @@
Subproject commit 1f068d1ee84849b3b1758b0a46844834019de1bc
Subproject commit 4e02392274e1b5f7a038171deee2e445128b2e35

View file

@ -732,7 +732,14 @@ void MainWindow::onTransactionCreated(PendingTransaction *tx, const QVector<QStr
message.helpItems = {"Your transaction has too many inputs. Try sending a lower amount."};
}
catch (const tools::error::not_enough_unlocked_money &e) {
message.description = QString("Not enough unlocked balance.\n\nUnlocked balance: %1\nTransaction spends: %2").arg(e.available(), e.tx_amount());
QString error;
if (e.fee() > e.available()) {
error = QString("Transaction fee exceeds spendable balance.\n\nSpendable balance: %1\nTransaction fee: %2").arg(WalletManager::displayAmount(e.available()), WalletManager::displayAmount(e.fee()));
}
else {
error = QString("Spendable balance insufficient to pay for transaction.\n\nSpendable balance: %1\nTransaction needs: %2").arg(WalletManager::displayAmount(e.available()), WalletManager::displayAmount(e.tx_amount() + e.fee()));
}
message.description = error;
message.helpItems = {"Wait for more balance to unlock.", "Click 'Help' to learn more about how balance works."};
message.doc = "balance";
}

View file

@ -212,6 +212,11 @@ void SendWidget::sendClicked() {
return;
}
if (unlocked_balance == 0) {
Utils::showError(this, "Unable to create transaction", QString("No spendable balance.\n\n%1 XMR becomes spendable within 10 blocks (~20 minutes).").arg(WalletManager::displayAmount(total_balance - unlocked_balance)), {"Wait for more balance to unlock.", "Click 'Help' to learn more about how balance works."}, "balance");
return;
}
if (!sendAll && amount > unlocked_balance) {
Utils::showError(this, "Unable to create transaction", QString("Not enough money to spend.\n\n"
"Spendable balance: %1").arg(WalletManager::displayAmount(unlocked_balance)));