def test_can_load_block_from_compacted_dict(): block = baker_factories.make_coin_transfer_block() compacted = block.to_compact_dict() loaded_block = Block.from_compact_dict(compacted) assert loaded_block == block
def _yield_blocks_from_file(self, file_path, direction, start=None): assert direction in (1, -1) storage = self.block_storage unpacker = msgpack.Unpacker() unpacker.feed(storage.load(file_path)) if direction == -1: unpacker = always_reversible(unpacker) for block_compact_dict in unpacker: block = Block.from_compact_dict(block_compact_dict) block_number = block.message.block_number # TODO(dmu) HIGH: Implement a better skip if start is not None: if direction == 1 and block_number < start: continue elif direction == -1 and block_number > start: continue self.blocks_cache[block_number] = block yield block