From aaae81426b3c19c21c4c0450e2df56d337d01def Mon Sep 17 00:00:00 2001 From: Dariusz Kedzierski <dkedzierski@syncad.com> Date: Wed, 29 Apr 2020 16:52:03 +0200 Subject: [PATCH] Fixed bug with expiration exception for transactions pushed in accelerated node --- beem/transactionbuilder.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/beem/transactionbuilder.py b/beem/transactionbuilder.py index 162899a4..1356533b 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) -- GitLab