| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- 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}')
|