def from_json(json_block): """ Constructor a block from a json string :param json_block: a block serialized as a json string :return: A block """ tmp_block = Block() json_block = json.loads(json_block) tmp_block.blockheader = BlockHeader.from_json( json_block['blockheader']) if tmp_block.blockheader.blocknumber == 0: tmp_block.state = json_block['state'] tmp_block.stake_list = json_block['stake_list'] json_transactions = json_block['transactions'] json_duplicate_transactions = json_block['duplicate_transactions'] tmp_block.transactions = [ Transaction.from_txdict(tx) for tx in json_transactions ] tmp_block.duplicate_transactions = [ DuplicateTransaction().from_txdict(tx) for tx in json_duplicate_transactions ] return tmp_block
def json_to_block(self, json_block): self.blockheader = BlockHeader() self.blockheader.json_to_blockheader(json_block['blockheader']) transactions = json_block['transactions'] self.transactions = [] for tx in transactions: self.transactions.append(Transaction.from_txdict(tx)) duplicate_transactions = json_block['duplicate_transactions'] self.duplicate_transactions = [] for tx in duplicate_transactions: self.duplicate_transactions.append( DuplicateTransaction().from_txdict(tx)) if self.blockheader.blocknumber == 0: self.state = json_block['state'] self.stake_list = json_block['stake_list']