input: from typing import List
  
  def create_blockchain(blockchain_transactions: List[dict]) -> List[Block]:
      """ Create a blockchain based on a list of transactions. Each transaction is represented as a dictionary.
      The blockchain should start with a genesis block and add subsequent blocks for each transaction in the provided list.
      >>> create_blockchain([{'sender': 'Alice', 'receiver': 'Bob', 'amount': 10}, {'sender': 'Bob', 'receiver': 'Charlie', 'amount': 5}])
      [Block(index=0, timestamp='1615162095', data={'message': 'Genesis Block'}, previous_hash='0', hash='d2a8e368fcd06ca61b5f7cc6a0a45a3d97cdc5ff95b1b856d151ac6f22c47a4f'), 
       Block(index=1, timestamp='1615162095', data={'sender': 'Alice', 'receiver': 'Bob', 'amount': 10}, previous_hash='d2a8e368fcd06ca61b5f7cc6a0a45a3d97cdc5ff95b1b856d151ac6f22c47a4f', hash='fcaa457e3da5a0b93b5f7e83c6a0a45a3d97cdc5ff95b1b856d151ac6f22c47a4'), 
       Block(index=2, timestamp='1615162095', data={'sender': 'Bob', 'receiver': 'Charlie', 'amount': 5}, previous_hash='fcaa457e3da5a0b93b5f7e83c6a0a45a3d97cdc5ff95b1b856d151ac6f22c47a4', hash='b6bce3b08a9f5b9e89e0e3c8f6a0a45a3d97cdc5ff95b1b856d151ac6f22c47a4')]
      """
output:     from hashlib import sha256
      import time
  
      class Block:
          def __init__(self, index, timestamp, data, previous_hash):
              self.index = index
              self.timestamp = timestamp
              self.data = data
              self.previous_hash = previous_hash
              self.hash = self.calculate_hash()
  
          def calculate_hash(self):
              block_string = f"{self.index}{self.timestamp}{self.data}{self.previous_hash}"
              return sha256(block_string.encode()).hexdigest()
  
          def __repr__(self):
              return f"Block(index={self.index}, timestamp='{self.timestamp}', data={self.data}, previous_hash='{self.previous_hash}', hash='{self.hash}')"
  
      blockchain = []
      genesis_block = Block(0, str(int(time.time())), {'message': 'Genesis Block'}, '0')
      blockchain.append(genesis_block)
  
      for i, transaction in enumerate(blockchain_transactions):
          new_block = Block(i + 1, str(int(time.time())), transaction, blockchain[-1].hash)
          blockchain.append(new_block)
  
      return blockchain