From b218e84d296e2aebd597783d52e1460c97cfe3c0 Mon Sep 17 00:00:00 2001 From: Thomas Zarebczan Date: Thu, 15 Mar 2018 09:42:17 -0400 Subject: [PATCH] update channel balance checking to match claim Simple balance check before calling get_max_usable_balance_for_claim - matches what happens on the claim. Also provide clearer error message about maximum amount --- lbrynet/daemon/Daemon.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/lbrynet/daemon/Daemon.py b/lbrynet/daemon/Daemon.py index 8107668af..809c57d72 100644 --- a/lbrynet/daemon/Daemon.py +++ b/lbrynet/daemon/Daemon.py @@ -1851,17 +1851,19 @@ class Daemon(AuthJSONRPCServer): raise Exception("Invalid channel name") if amount <= 0: raise Exception("Invalid amount") - - balance = yield self.session.wallet.get_max_usable_balance_for_claim(channel_name) - max_bid_amount = balance - MAX_UPDATE_FEE_ESTIMATE - if balance <= MAX_UPDATE_FEE_ESTIMATE: - raise InsufficientFundsError( - "Insufficient funds, please deposit additional LBC. Minimum additional LBC needed {}" - .format(MAX_UPDATE_FEE_ESTIMATE - balance)) - elif amount > max_bid_amount: - raise InsufficientFundsError( - "Please lower the bid value, the maximum amount you can specify for this claim is {}" - .format(max_bid_amount)) + + yield self.session.wallet.update_balance() + if amount >= self.session.wallet.get_balance(): + balance = yield self.session.wallet.get_max_usable_balance_for_claim(channel_name) + max_bid_amount = balance - MAX_UPDATE_FEE_ESTIMATE + if balance <= MAX_UPDATE_FEE_ESTIMATE: + raise InsufficientFundsError( + "Insufficient funds, please deposit additional LBC. Minimum additional LBC needed {}" + . format(MAX_UPDATE_FEE_ESTIMATE - balance)) + elif amount > max_bid_amount: + raise InsufficientFundsError( + "Please lower the bid value, the maximum amount you can specify for this channel is {}" + .format(max_bid_amount)) result = yield self.session.wallet.claim_new_channel(channel_name, amount) self.analytics_manager.send_new_channel() @@ -2047,7 +2049,7 @@ class Daemon(AuthJSONRPCServer): .format(MAX_UPDATE_FEE_ESTIMATE - balance)) elif bid > max_bid_amount: raise InsufficientFundsError( - "Please lower the bid. After accounting for the estimated fee, you only have {} left." + "Please lower the bid value, the maximum amount you can specify for this claim is {}." .format(max_bid_amount)) metadata = metadata or {}