From dcad17de9f0c3c4dbf0bcadb3f4785eefb8fc1ab Mon Sep 17 00:00:00 2001 From: Tim Olson <> Date: Wed, 8 Nov 2023 23:17:51 -0400 Subject: [PATCH] bugfixes --- src/dexorder/order/orderlib.py | 12 +++++++----- src/dexorder/transaction.py | 4 +++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/dexorder/order/orderlib.py b/src/dexorder/order/orderlib.py index 2e1c01e..730d412 100644 --- a/src/dexorder/order/orderlib.py +++ b/src/dexorder/order/orderlib.py @@ -90,14 +90,16 @@ class SwapOrderStatus (SwapStatus): state = SwapOrderState(obj[1]) start = obj[2] ocoGroup = None if obj[3] == NO_OCO else obj[3] - filledIn = obj[4] - filledOut = obj[5] - trancheFilledIn = obj[6] - trancheFilledOut = obj[7] + filledIn = int(obj[4]) + filledOut = int(obj[5]) + trancheFilledIn = [int(f) for f in obj[6]] + trancheFilledOut = [int(f) for f in obj[7]] return SwapOrderStatus(order, state, start, ocoGroup, filledIn, filledOut, trancheFilledIn, trancheFilledOut) def dump(self): - return self.order.dump(), self.state.value, self.start, self.ocoGroup, self.filledIn, self.filledOut, self.trancheFilledIn, self.trancheFilledOut + return (self.order.dump(), self.state.value, self.start, self.ocoGroup, + str(self.filledIn), str(self.filledOut), + [str(f) for f in self.trancheFilledIn], [str(f) for f in self.trancheFilledOut]) def copy(self): return copy.deepcopy(self) diff --git a/src/dexorder/transaction.py b/src/dexorder/transaction.py index e3d4967..2502c90 100644 --- a/src/dexorder/transaction.py +++ b/src/dexorder/transaction.py @@ -74,7 +74,9 @@ async def create_transaction(job: TransactionJob): db.session.add(dbtx) log.info(f'servicing transaction request {job.request.__class__.__name__} {job.id} with tx {ctx.id}') - +# todo sign-and-send should be a single phase. if the send fails due to lack of wallet gas, or because gas price went up suddenly, +# we need to re-sign a new message with updated gas. so do not store signed messages but keep the unsigned state around until it +# is signed and sent async def send_transactions(): w3 = current_w3.get() for job in db.session.query(TransactionJob).filter(