def test_valid_serialization(): tx_in = TxIn(OutPoint("ff" * 32, 0), Script()) tx_out = TxOut(10, Script()) tx = Tx([tx_in], [tx_out]) assert tx == Tx.deserialize(tx.serialize()) tx_in_2 = TxIn(OutPoint("ff" * 32, 1), Script()) tx = Tx([tx_in, tx_in_2], [tx_out]) assert tx == Tx.deserialize(tx.serialize())
def deserialize(cls, data): header = BlockHeader.deserialize(data[:76]) transactions = [] transaction_count = int.from_bytes(data[76:78], "big") data = data[78:] for i in range(transaction_count): tx_size = int.from_bytes(data[:2], "big") transactions.append(Tx.deserialize(data[2:2 + tx_size])) data = data[2 + tx_size:] return Block(header, transactions)