diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f904db0cbd97e1903e6387309c3fc8540a12d051..8699293557762a934ebd114795bdb21701acc76d 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,5 +1,14 @@ Changelog ========= +0.20.22 +------- +* Fix #195 - comment.downvote(100) will now downvote with 100%, negative numbers are not allowed anymore +* comment.upvote(), negative numbers are not allowed anymore +* Fix #193 - steem.vote() was added, so that voting is possible without tags_api +* PR #181 - improve permlink derivation by crokkon +* PR #192 - fixes compatibility issues with WhaleShares HF2 / v2.5 by alexpmorris +* Fix bug for get_estimated_block_num when a block is skipped + 0.20.21 ------- * Fix float entered in Amount will be reduced by 0.001 due to rounding issues diff --git a/beem/blockchain.py b/beem/blockchain.py index 0d367317efaa3a2ce28f2c718924d496b12155bc..8672220489bc48fe34446f9ede21e702320d68b1 100644 --- a/beem/blockchain.py +++ b/beem/blockchain.py @@ -310,6 +310,16 @@ class Blockchain(object): .. note:: The block number returned depends on the ``mode`` used when instantiating from this class. + + .. code-block:: python + + >>> from beem.blockchain import Blockchain + >>> from datetime import datetime + >>> blockchain = Blockchain() + >>> block_num = blockchain.get_estimated_block_num(datetime(2019, 6, 18, 5 ,8, 27)) + >>> block_num == 33898184 + True + """ last_block = self.get_current_block() date = addTzInfo(date) @@ -328,9 +338,17 @@ class Blockchain(object): if block_number > last_block.identifier: block_number = last_block.identifier block_time_diff = timedelta(seconds=10) + + last_block_time_diff_seconds = 10 + second_last_block_time_diff_seconds = 10 + while block_time_diff.total_seconds() > self.block_interval or block_time_diff.total_seconds() < -self.block_interval: block = Block(block_number, steem_instance=self.steem) + second_last_block_time_diff_seconds = last_block_time_diff_seconds + last_block_time_diff_seconds = block_time_diff.total_seconds() block_time_diff = date - block.time() + if second_last_block_time_diff_seconds == block_time_diff.total_seconds() and second_last_block_time_diff_seconds < 10: + return int(block_number) delta = block_time_diff.total_seconds() // self.block_interval if delta == 0 and block_time_diff.total_seconds() < 0: delta = -1