diff --git a/beem/transactionbuilder.py b/beem/transactionbuilder.py index 162899a40bd90f8d38791f06cb6f7abd1621568f..1356533b9b49a78b032e6561ef6441eda3ae12e7 100644 --- a/beem/transactionbuilder.py +++ b/beem/transactionbuilder.py @@ -251,9 +251,17 @@ class TransactionBuilder(dict): ops.extend([Operation(op, appbase=appbase, prefix=self.hive.prefix)]) # We no wrap everything into an actual transaction - expiration = formatTimeFromNow( - self.expiration or self.hive.expiration - ) + # calculation expiration time from last block time not system time + # it fixes transaction expiration error when pushing transactions + # when blocks are moved forward with debug_produce_block* + import dateutil.parser + from datetime import timedelta + now = dateutil.parser.parse(self.hive.rpc.get_dynamic_global_properties().get('time')) + expiration = now + timedelta(seconds = int(self.expiration or self.hive.expiration)) + expiration = expiration.replace(microsecond = 0).isoformat() + #expiration = formatTimeFromNow( + # self.expiration or self.hive.expiration + #) if ref_block_num is None or ref_block_prefix is None: ref_block_num, ref_block_prefix = transactions.getBlockParams( self.hive.rpc)