From f8b256b51b754e4abf55321e5465c245743c513c Mon Sep 17 00:00:00 2001 From: lash Date: Mon, 14 Mar 2022 19:53:54 +0000 Subject: [PATCH] Add reserve, send enclosure --- chainqueue/entry.py | 4 ++++ chainqueue/state.py | 2 +- chainqueue/store/base.py | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/chainqueue/entry.py b/chainqueue/entry.py index 1b0059c..d295ee7 100644 --- a/chainqueue/entry.py +++ b/chainqueue/entry.py @@ -27,6 +27,10 @@ class QueueEntry: self.synced = False + def serialize(self): + return self.signed_tx + + def create(self, signed_tx): signed_tx = normalize_hex(signed_tx) self.k = self.store.put(self.tx_hash, signed_tx) diff --git a/chainqueue/state.py b/chainqueue/state.py index 27d8bb8..87882d5 100644 --- a/chainqueue/state.py +++ b/chainqueue/state.py @@ -46,7 +46,7 @@ class Verify: return 'already finalized' if from_state & state_store.IN_NETWORK: return 'already in network' - if from_state & state_store.RESERVED: + if not from_state & state_store.RESERVED: return 'not reserved' if from_state & state_store.mask_error: return 'already in error state' diff --git a/chainqueue/store/base.py b/chainqueue/store/base.py index e466d5d..ba59356 100644 --- a/chainqueue/store/base.py +++ b/chainqueue/store/base.py @@ -100,6 +100,12 @@ class Store: return self.by_state(state=0, limit=limit, strict=True) + def reserve(self, k): + entry = QueueEntry(self, k) + entry.load() + entry.reserve() + + def enqueue(self, k): entry = QueueEntry(self, k) entry.load() @@ -113,3 +119,16 @@ class Store: entry = QueueEntry(self, k) entry.load() entry.sendfail() + + + def send_start(self, k): + entry = QueueEntry(self, k) + entry.load() + entry.reserve() + return entry + + + def send_end(self, k): + entry = QueueEntry(self, k) + entry.load() + entry.sent()