chainqueue

Blockchain transaction queue control
Log | Files | Refs | LICENSE

commit f8b256b51b754e4abf55321e5465c245743c513c
parent 1f7ca2864771e569a0ae6bb485e8f6477f912442
Author: lash <dev@holbrook.no>
Date:   Mon, 14 Mar 2022 19:53:54 +0000

Add reserve, send enclosure

Diffstat:
Mchainqueue/entry.py | 4++++
Mchainqueue/state.py | 2+-
Mchainqueue/store/base.py | 19+++++++++++++++++++
3 files changed, 24 insertions(+), 1 deletion(-)

diff --git 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 @@ -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 @@ -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()