diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 3ddb26816312ef5896e479b9cf6014de7aed973c..01ffd4e86f0a1937bac0cb195fae85d923f0d19a 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -8,7 +8,8 @@ Changelog * Add Blocks class, which uses get_block_range * PR #272: correct blockchain virtual op batch calls (thanks to @crokkon) * PR #276: blockchain: get_account_reputations fix for first (thanks to @crokkon) -* PR #287: beempy witnessproperties: fix interest rate options +* PR #287: beempy witnessproperties: fix interest rate options (thanks to @crokkon) +* Fix #289: Unable to Claim Specific Reward Asset 0.24.20 ------- diff --git a/beem/account.py b/beem/account.py index 49e9876bd75061ca3ae6699ff93c42d08cfb0367..7cc7c0fcf8fdc61f2d13b9331cb7bc0cb2dcecba 100644 --- a/beem/account.py +++ b/beem/account.py @@ -3152,9 +3152,9 @@ class Account(BlockchainObject): # if no values were set by user, claim all outstanding balances on # account - reward_steem = self._check_amount(reward_steem + reward_hive, self.blockchain.token_symbol) - reward_sbd = self._check_amount(reward_sbd + reward_hbd, self.blockchain.backed_token_symbol) - reward_vests = self._check_amount(reward_vests, self.blockchain.vest_token_symbol) + reward_token_amount = self._check_amount(reward_steem + reward_hive, self.blockchain.token_symbol) + reward_backed_token_amount = self._check_amount(reward_sbd + reward_hbd, self.blockchain.backed_token_symbol) + reward_vests_amount = self._check_amount(reward_vests, self.blockchain.vest_token_symbol) if self.blockchain.is_hive: reward_token = "reward_hive" @@ -3163,29 +3163,31 @@ class Account(BlockchainObject): reward_token = "reward_steem" reward_backed_token = "reward_sbd" - if reward_steem.amount == 0 and reward_sbd.amount == 0 and reward_vests.amount == 0: + if reward_token_amount.amount == 0 and reward_backed_token_amount.amount == 0 and reward_vests_amount.amount == 0: if len(account.balances["rewards"]) == 3: - reward_steem = account.balances["rewards"][0] - reward_sbd = account.balances["rewards"][1] - reward_vests = account.balances["rewards"][2] - op = operations.Claim_reward_balance( - **{ - "account": account["name"], - reward_token: reward_steem, - reward_backed_token: reward_sbd, - "reward_vests": reward_vests, - "prefix": self.blockchain.prefix, - }) + reward_token_amount = account.balances["rewards"][0] + reward_backed_token_amount = account.balances["rewards"][1] + reward_vests_amount = account.balances["rewards"][2] else: - reward_steem = account.balances["rewards"][0] - reward_vests = account.balances["rewards"][1] - op = operations.Claim_reward_balance( - **{ - "account": account["name"], - reward_token: reward_steem, - "reward_vests": reward_vests, - "prefix": self.blockchain.prefix, - }) + reward_token_amount = account.balances["rewards"][0] + reward_vests_amount = account.balances["rewards"][1] + if len(account.balances["rewards"]) == 3: + op = operations.Claim_reward_balance( + **{ + "account": account["name"], + reward_token: reward_token_amount, + reward_backed_token: reward_backed_token_amount, + "reward_vests": reward_vests_amount, + "prefix": self.blockchain.prefix, + }) + else: + op = operations.Claim_reward_balance( + **{ + "account": account["name"], + reward_token: reward_token_amount, + "reward_vests": reward_vests_amount, + "prefix": self.blockchain.prefix, + }) return self.blockchain.finalizeOp(op, account, "posting", **kwargs)