changeset 9:e218f70e19e9

refactor code
author Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
date Sun, 24 Oct 2021 21:00:49 +0200
parents 4d259e84160d
children 6e9f420c117e
files main.py src/puppy/block.py src/puppy/block_structure.py src/puppy/helpers.py
diffstat 4 files changed, 25 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/main.py	Sun Oct 24 17:38:23 2021 +0200
+++ b/main.py	Sun Oct 24 21:00:49 2021 +0200
@@ -8,8 +8,14 @@
     print('File size in bytes: {}'. format(file_size))
 
     with open(filename, 'rb') as f:
+
+        counter = 0
         while f.tell() < file_size:
+            counter += 1
             block = deserialize_block(f)
+            if counter == 3456:
+                print(block)
+                exit()
 
 
 if __name__ == '__main__':
--- a/src/puppy/block.py	Sun Oct 24 17:38:23 2021 +0200
+++ b/src/puppy/block.py	Sun Oct 24 21:00:49 2021 +0200
@@ -16,13 +16,13 @@
 
     block = Block()
     block.magic_number = f.read(4).hex()
-    block.block_size = f.read(4)[::-1].hex()
-    block_header, block.block_hash = deserialize_header(f)
-    block.number_of_transactions = get_var_int(f)
+    block.size = f.read(4)[::-1].hex()
+    block_header, block.id = deserialize_header(f)
+    block.transaction_count = get_var_int(f)
 
     transactions = []
-    for transaction_number in range(int(block.number_of_transactions, 16)):
-        transactions.append(deserialize_transaction_data(f, block.block_size))
+    for transaction_number in range(int(block.transaction_count, 16)):
+        transactions.append(deserialize_transaction_data(f))
 
     block_dict = block.__dict__
     block_dict['header'] = block_header
@@ -47,7 +47,7 @@
 
     header = Header()
     header.version = f.read(4)[::-1].hex()
-    header.previous_block_hash = f.read(32)[::-1].hex()
+    header.previous_block_id = f.read(32)[::-1].hex()
     header.merkle_root = f.read(32)[::-1].hex()
     header.time = f.read(4)[::-1].hex()
     header.bits = f.read(4)[::-1].hex()
@@ -56,23 +56,21 @@
     return header.__dict__, block_hash
 
 
-def deserialize_transaction_data(f, block_size):
+def deserialize_transaction_data(f):
     """
     Deserialize transaction data
     More info: https://learnmeabitcoin.com/technical/transaction-data
     :param f: buffer, required
-    :param block_size: string, required
     :return: dict
     """
 
+    transaction = Transaction()
     start_transaction_data = f.tell()
-
-    transaction = Transaction()
     transaction.version = f.read(4)[::-1].hex()
-    transaction.number_of_inputs = get_var_int(f)
+    transaction.input_count = get_var_int(f)
 
     transaction_inputs = []
-    for input_number in range(int(transaction.number_of_inputs, 16)):
+    for input_number in range(int(transaction.input_count, 16)):
         transaction_input = TransactionInput()
         transaction_input.id = f.read(32)[::-1].hex()
         transaction_input.vout = f.read(4)[::-1].hex()
@@ -81,10 +79,10 @@
         transaction_input.sequence = f.read(4)[::-1].hex()
         transaction_inputs.append(transaction_input.__dict__)
 
-    transaction.number_of_outputs = get_var_int(f)
+    transaction.output_count = get_var_int(f)
 
     transaction_outputs = []
-    for output_number in range(int(transaction.number_of_outputs, 16)):
+    for output_number in range(int(transaction.output_count, 16)):
         transaction_output = TransactionOutput()
         transaction_output.value = f.read(8)[::-1].hex()
         transaction_output.script_pub_key_size = get_var_int(f)
--- a/src/puppy/block_structure.py	Sun Oct 24 17:38:23 2021 +0200
+++ b/src/puppy/block_structure.py	Sun Oct 24 21:00:49 2021 +0200
@@ -1,13 +1,13 @@
 class Block:
-    block_hash = str()
+    id = str()
     magic_number = str()
-    block_size = str()
-    number_of_transactions = str()
+    size = str()
+    transaction_count = str()
 
 
 class Header:
     version = str()
-    previous_block_hash = str()
+    previous_block_id = str()
     merkle_root = str()
     time = str()
     bits = str()
@@ -17,8 +17,8 @@
 class Transaction:
     id = str()
     version = str()
-    number_of_inputs = str()
-    number_of_outputs = str()
+    input_count = str()
+    output_count = str()
     lock_time = str()
 
 
--- a/src/puppy/helpers.py	Sun Oct 24 17:38:23 2021 +0200
+++ b/src/puppy/helpers.py	Sun Oct 24 21:00:49 2021 +0200
@@ -38,4 +38,4 @@
     h = hashlib.sha256(data).digest()
     h = hashlib.sha256(h).digest()
 
-    return h[::-1].hex()
\ No newline at end of file
+    return h[::-1].hex()