view personal transactions and changed counters
This commit is contained in:
parent
a15cdce0c0
commit
2d60686f38
@ -37,11 +37,12 @@ class MenuHelper:
|
||||
|
||||
self.user_blockchain_menu[0] = "Back"
|
||||
self.user_blockchain_menu[1] = "Explore the Blockchain"
|
||||
self.user_blockchain_menu[2] = "Transfer coins"
|
||||
self.user_blockchain_menu[3] = "Cancel transaction"
|
||||
self.user_blockchain_menu[4] = "Check balance"
|
||||
self.user_blockchain_menu[5] = "Check the pool"
|
||||
self.user_blockchain_menu[6] = "Mine a block"
|
||||
self.user_blockchain_menu[2] = "View personal transactions"
|
||||
self.user_blockchain_menu[3] = "Transfer coins"
|
||||
self.user_blockchain_menu[4] = "Cancel transaction"
|
||||
self.user_blockchain_menu[5] = "Check balance"
|
||||
self.user_blockchain_menu[6] = "Check the pool"
|
||||
self.user_blockchain_menu[7] = "Mine a block"
|
||||
|
||||
self.user_settings_menu[0] = "Back"
|
||||
self.user_settings_menu[1] = "View account info"
|
||||
@ -141,6 +142,9 @@ class MenuHelper:
|
||||
case "Explore the Blockchain":
|
||||
taskHelper.exploreBlocks(self)
|
||||
|
||||
case "View personal transactions":
|
||||
taskHelper.getPersonalTransactions(self)
|
||||
|
||||
case "Transfer coins":
|
||||
new_tx = taskHelper.transaction(self)
|
||||
if new_tx != False and new_tx.is_valid():
|
||||
@ -207,6 +211,11 @@ class MenuHelper:
|
||||
utilityHelper.clearScreen()
|
||||
print("Wrong input, try again")
|
||||
return None
|
||||
|
||||
if choice > len(menu):
|
||||
utilityHelper.clearScreen()
|
||||
print("Wrong input, try again")
|
||||
return None
|
||||
utilityHelper.clearScreen()
|
||||
|
||||
return choice
|
@ -132,10 +132,12 @@ def createBlock(self):
|
||||
def exploreBlocks(self):
|
||||
blocks = utilityHelper.loadFile("../data/ledger.dat")
|
||||
x = 0
|
||||
total_transactions = 0
|
||||
for block in blocks:
|
||||
x += 1
|
||||
total_transactions += len(block.data)
|
||||
print(f"---------------------------------------{x}-------------------------------------------")
|
||||
print(f"Block created: {block.date}")
|
||||
x += 1
|
||||
print("---------------------------------------END-------------------------------------------")
|
||||
print("Select a number to view the block, keep empty to return.")
|
||||
user_input = input(">>: ")
|
||||
@ -143,30 +145,31 @@ def exploreBlocks(self):
|
||||
return
|
||||
|
||||
try:
|
||||
user_input = int(user_input)
|
||||
user_input = int(user_input) -1
|
||||
except:
|
||||
utilityHelper.clearScreen()
|
||||
print("Wrong input, try again")
|
||||
return
|
||||
|
||||
if user_input > len(blocks):
|
||||
if user_input > len(blocks) - 1 or user_input < 0:
|
||||
utilityHelper.clearScreen()
|
||||
print("Wrong input, try again")
|
||||
return
|
||||
|
||||
# print all info of the block
|
||||
utilityHelper.clearScreen()
|
||||
print(f"---------------------------------------{user_input}-------------------------------------------")
|
||||
print(f"---------------------------------------{user_input +1}-------------------------------------------")
|
||||
print(f"Block created: {blocks[user_input].date}")
|
||||
print(f"Block hash: {blocks[user_input].blockHash}")
|
||||
print(f"Block nonce: {blocks[user_input].nonce}")
|
||||
print(f"Block mined time: {blocks[user_input].time}")
|
||||
# print(f"Block transactions: {blocks[user_input].transactions}")
|
||||
print(f"Block transactions: {len(blocks[user_input].data)}")
|
||||
print(f"Block previous hash: {blocks[user_input].previousHash}")
|
||||
print("---------------------------------------------------------------------------------------")
|
||||
print("0 -- go back")
|
||||
print("1 -- View transactions of current block")
|
||||
print("2 -- View another block")
|
||||
print("0 -- Go back")
|
||||
print("1 -- Validate block")
|
||||
print("2 -- View transactions of current block")
|
||||
print("3 -- View another block")
|
||||
choice = input(">>: ")
|
||||
|
||||
match choice:
|
||||
@ -174,18 +177,20 @@ def exploreBlocks(self):
|
||||
utilityHelper.clearScreen()
|
||||
return
|
||||
case "1":
|
||||
print("Validating block... TODO")
|
||||
case "2":
|
||||
utilityHelper.clearScreen()
|
||||
x = 0
|
||||
for transaction in blocks[user_input].data:
|
||||
x += 1
|
||||
print(f"---------------------------------------{x}-------------------------------------------")
|
||||
print(f"Transaction input: {transaction.inputs[0][1]}")
|
||||
print(f"Transaction output: {transaction.outputs[0][1]}")
|
||||
print(f"Transaction fees: {transaction.inputs[0][1] - transaction.outputs[0][1]}")
|
||||
print(f"Transaction sender: \n{transaction.inputs[0][0]}")
|
||||
print(f"Transaction recipient: \n{transaction.outputs[0][0]}")
|
||||
x += 1
|
||||
print("-----------------------------------------------------------------------------------")
|
||||
case "2":
|
||||
case "3":
|
||||
utilityHelper.clearScreen()
|
||||
exploreBlocks(self)
|
||||
case _:
|
||||
@ -202,4 +207,32 @@ def getBalance(self):
|
||||
balance += transaction.outputs[0][1]
|
||||
elif transaction.inputs[0][0] == self.user.public_ser:
|
||||
balance -= transaction.inputs[0][1]
|
||||
return balance
|
||||
return balance
|
||||
|
||||
def getPersonalTransactions(self):
|
||||
blocks = utilityHelper.loadFile("../data/ledger.dat")
|
||||
total = 0
|
||||
total_input = 0
|
||||
total_output = 0
|
||||
for block in blocks:
|
||||
for transaction in block.data:
|
||||
if transaction.outputs[0][0] == self.user.public_ser or transaction.inputs[0][0] == self.user.public_ser:
|
||||
total += 1
|
||||
print(f"---------------------------------------{total}-------------------------------------------")
|
||||
print(f"Transaction input: {transaction.inputs[0][1]}")
|
||||
print(f"Transaction output: {transaction.outputs[0][1]}")
|
||||
print(f"Transaction fees: {transaction.inputs[0][1] - transaction.outputs[0][1]}")
|
||||
print(f"Transaction sender: \n{transaction.inputs[0][0]}")
|
||||
print(f"Transaction recipient: \n{transaction.outputs[0][0]}")
|
||||
|
||||
if transaction.outputs[0][0] == self.user.public_ser:
|
||||
total_output += transaction.outputs[0][1]
|
||||
elif transaction.inputs[0][0] == self.user.public_ser:
|
||||
total_input += transaction.inputs[0][1]
|
||||
print("-----------------------------------------------------------------------------------")
|
||||
print(f"Total transactions: {total}")
|
||||
print(f"Total spent: {total_input}")
|
||||
print(f"Total received: {total_output}")
|
||||
print(f"Total balance: {total_output - total_input}")
|
||||
print("-----------------------------------------------------------------------------------")
|
||||
|
Loading…
x
Reference in New Issue
Block a user