import json from lib.block import Block class Chain: def __init__(self): self.blocks = [] self.block_store = [] def add_block(self, block: Block): self.save() self.blocks.append(block) self.log(f'Added block. Height: {block.height}') def last_block(self): return self.blocks[-1] if len(self.blocks) > 0 else None def get_height(self): return self.last_block().height if self.last_block() is not None else None def find_transactions(self, address): found = [] for block in self.blocks: for transaction in block.transactions: if transaction.key == address.public: found.append(transaction) return found def save(self): if self.last_block() is not None: self.block_store.append(self.last_block().serialize()) with open('data/block.json', 'w+') as f: json.dump(self.block_store, f) self.log(f'Saved up to block {self.get_height()}') def log(self, text): print(f'[ CHAIN ] {text}')