diff --git a/src/dexorder/bin/examine.py b/src/dexorder/bin/examine.py index 751e86c..d86b4d2 100644 --- a/src/dexorder/bin/examine.py +++ b/src/dexorder/bin/examine.py @@ -7,6 +7,7 @@ from dexorder.blocks import current_block, get_block from dexorder.blockstate import current_blockstate from dexorder.blockstate.blockdata import BlockData from dexorder.blockstate.db_state import DbState +from dexorder.blockstate.fork import current_fork from dexorder.contract.dexorder import VaultContract from dexorder.order.orderstate import Order from dexorder.tokens import adjust_decimals @@ -66,10 +67,11 @@ async def main(args: list): db_state = DbState(BlockData.by_opt('db')) with db.transaction(): state = await db_state.load() - state.readonly = True + # state.readonly = True current_blockstate.set(state) block = await get_block(state.root_hash) current_block.set(block) + current_fork.set(state.root_fork) await subcommand(parsed) diff --git a/src/dexorder/memcache/memcache_state.py b/src/dexorder/memcache/memcache_state.py index f112b33..596d9ff 100644 --- a/src/dexorder/memcache/memcache_state.py +++ b/src/dexorder/memcache/memcache_state.py @@ -2,7 +2,7 @@ import logging from collections import defaultdict from typing import Iterable, Union, Reversible, Any -from redis.asyncio.client import Pipeline +from redis.asyncio.client import Pipeline, Redis from socket_io_emitter import Emitter from dexorder import DELETE @@ -91,20 +91,19 @@ class RedisState (SeriesCollection): hsets[series][key] = value else: raise NotImplementedError - async with memcache.batch() as r: - r: Pipeline - for series, keys in sadds.items(): - r.sadd(series, *keys) - for series, keys in sdels.items(): - r.srem(series, *keys) - for series, kvs in hsets.items(): - r.hset(series, mapping=kvs) - for series, keys in hdels.items(): - r.hdel(series, *keys) - block_series = f'{chain_id}|head' - headstr = hexstr(fork.head) - r.json(json_encoder).set(block_series,'$',[fork.height, headstr]) - pubs.append((str(chain_id), 'head', [fork.height, headstr])) + r: Redis = current_redis.get() + for series, keys in sadds.items(): + await r.sadd(series, *keys) + for series, keys in sdels.items(): + await r.srem(series, *keys) + for series, kvs in hsets.items(): + await r.hset(series, mapping=kvs) + for series, keys in hdels.items(): + await r.hdel(series, *keys) + block_series = f'{chain_id}|head' + headstr = hexstr(fork.head) + await r.json(json_encoder).set(block_series,'$',[fork.height, headstr]) + pubs.append((str(chain_id), 'head', [fork.height, headstr])) # separate batch for pubs if pubs: await publish_all(pubs)