-
Notifications
You must be signed in to change notification settings - Fork 138
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
When attempting to send an amount larger than the wallet's current balance, grin-wallet will panick and exit ungracefully.
To Reproduce
Password:
20210126 18:08:18.953 WARN grin_wallet_libwallet::api_impl::owner_updater - Scanning - 0% complete
20210126 18:08:19.183 WARN grin_wallet_libwallet::api_impl::owner_updater - Scanning - 99% complete
20210126 18:08:19.198 WARN grin_wallet_libwallet::api_impl::owner_updater - Scanning - 99% complete
20210126 18:08:19.199 WARN grin_wallet_libwallet::api_impl::owner_updater - Scanning Complete
____ Wallet Summary Info - Account 'default' as of height 1063713 ____
Confirmed Total | 220.059956334
Awaiting Confirmation (< 10) | 0.000000000
Awaiting Finalization | 0.000000000
Locked by previous transaction | 0.000000000
-------------------------------- | -------------
Currently Spendable | 220.059956334
Command 'info' completed successfully
nthrow@debian:~$ grin-wallet send -e -m 220
Password:
Estimation for sending 220.000000000:
+--------------------+-------------+----------------+
| Selection strategy | Fee | Will be locked |
+====================+=============+================+
| smallest | 0.023000000 | 220.059956334 |
+--------------------+-------------+----------------+
| all | 0.023000000 | 220.059956334 |
+--------------------+-------------+----------------+
Command 'send' completed successfully
nthrow@debian:~$ grin-wallet send -e -m 220.5
Password:
20210126 18:08:33.539 ERROR grin_util::logger -
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { inner:
Not enough funds. Required: 220.512500000, Available: 220.059956334 }': /home/vsts/work/1/s/controller/src/command.rs:294 0: grin_util::logger::send_panic_to_log::{{closure}}
1: std::panicking::rust_panic_with_hook
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:597
2: std::panicking::begin_panic_handler::{{closure}}
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:499
3: std::sys_common::backtrace::__rust_end_short_backtrace
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys_common/backtrace.rs:141
4: rust_begin_unwind
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:495
5: core::panicking::panic_fmt
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/panicking.rs:92
6: core::option::expect_none_failed
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/option.rs:1268
7: grin_wallet_controller::command::send::{{closure}}::{{closure}}
8: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
9: grin_wallet_controller::command::send::{{closure}}
10: grin_wallet_controller::controller::owner_single_use
11: grin_wallet_controller::command::send
12: grin_wallet::cmd::wallet_args::parse_and_execute
13: grin_wallet::cmd::wallet_args::wallet_command
14: grin_wallet::cmd::wallet::wallet_command
15: grin_wallet::real_main
16: grin_wallet::main
17: std::sys_common::backtrace::__rust_begin_short_backtrace
18: std::rt::lang_start::{{closure}}
19: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/ops/function.rs:259
std::panicking::try::do_call
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:381
std::panicking::try
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:345
std::panic::catch_unwind
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panic.rs:396
std::rt::lang_start_internal
at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/rt.rs:51
20: main
21: __libc_start_main
22: _start
Thread 'main' panicked with message:
"called `Result::unwrap()` on an `Err` value: Error { inner:
Not enough funds. Required: 220.512500000, Available: 220.059956334 }"
See /home/nthrow/.grin/main/grin-wallet.log for further details.
Expected behavior
A graceful response, such as a message saying "Not enough funds!" or whatever. Also, the ability to "send all" or "send max" with auto-calculation of fees would be amazing, as I found this bug in trying to do as much manually.
Desktop (please complete the following information):
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working