fixed rounding, cleaner pool print

This commit is contained in:
Ryan Bakkes 2023-11-12 22:07:05 +01:00
parent 97f919e435
commit a26bc010b6
4 changed files with 36 additions and 9 deletions

View File

@ -129,7 +129,7 @@ def createBlock(self):
if transaction.type == 1: if transaction.type == 1:
fees[x] = 0 fees[x] = 0
else: else:
fees[x] = transaction.inputs[0][1] - transaction.outputs[0][1] fees[x] = round(transaction.inputs[0][1] - transaction.outputs[0][1], 2)
x+=1 x+=1
fees_list = list(fees.keys()) fees_list = list(fees.keys())
@ -278,7 +278,7 @@ def validateMinedBlock(self):
fees += transaction.inputs[0][1] - transaction.outputs[0][1] fees += transaction.inputs[0][1] - transaction.outputs[0][1]
self.db.createLog(transaction.inputs[0][0], time.time(), f"Transaction of {transaction.inputs[0][1]} is added in block id {new_block.id}") self.db.createLog(transaction.inputs[0][0], time.time(), f"Transaction of {transaction.inputs[0][1]} is added in block id {new_block.id}")
self.db.createLog(transaction.outputs[0][0], time.time(), f"You have received new coins: {transaction.outputs[0][1]}, To see all info view block id {new_block.id}") self.db.createLog(transaction.outputs[0][0], time.time(), f"You have received new coins: {transaction.outputs[0][1]}, To see all info view block id {new_block.id}")
fees = round(fees, 2)
new_reward = Tx() new_reward = Tx()
new_reward.createRewardTransaction(self.user.public_ser, self.user.private_ser, "MINE", fees) new_reward.createRewardTransaction(self.user.public_ser, self.user.private_ser, "MINE", fees)
self.db.createLog(new_block.metadata['miner'], time.time(), f"Block id {new_block.id}, is validated!") self.db.createLog(new_block.metadata['miner'], time.time(), f"Block id {new_block.id}, is validated!")

View File

@ -159,11 +159,7 @@ class MenuHelper:
if len(transactions) == 0: if len(transactions) == 0:
print(f"{utilityHelper.warningMessage('Transaction pool is empty')}") print(f"{utilityHelper.warningMessage('Transaction pool is empty')}")
continue continue
x = 0 transactionHelper.printAllTransactions()
for transaction in transactions:
x += 1
print(f"---------------------------------------{x}-------------------------------------------")
print(f"{transaction}")
print("---------------------------------------END-------------------------------------------") print("---------------------------------------END-------------------------------------------")
case "Mine a block": case "Mine a block":

View File

@ -64,7 +64,7 @@ def getPersonalTransactions(self):
else: else:
input_user = transaction.inputs[0][0] input_user = transaction.inputs[0][0]
input_amount = transaction.inputs[0][1] input_amount = transaction.inputs[0][1]
fee = input_amount - transaction.outputs[0][1] fee = round(input_amount - transaction.outputs[0][1],2)
print(f"---------------------------------------{total}-------------------------------------------") print(f"---------------------------------------{total}-------------------------------------------")
print(f"Transaction input: {input_amount}") print(f"Transaction input: {input_amount}")
print(f"Transaction output: {transaction.outputs[0][1]}") print(f"Transaction output: {transaction.outputs[0][1]}")

View File

@ -60,6 +60,25 @@ def transaction(self):
new_tx.createTransaction(self.user.public_ser, self.user.private_ser, amount, fee, receiver_data[1]) new_tx.createTransaction(self.user.public_ser, self.user.private_ser, amount, fee, receiver_data[1])
return new_tx return new_tx
def printAllTransactions():
transactions = utilityHelper.loadFile("../data/transaction_pool.dat")
total = 0
for transaction in transactions:
total += 1
print(f"---------------------------------------{total}-------------------------------------------")
if transaction.type == 1:
print(f"Transaction input: Reward")
print(f"Transaction output: {transaction.outputs[0][1]}")
print(f"Transaction recipient: \n{transaction.outputs[0][0]}")
else:
print(f"Transaction input: {transaction.inputs[0][1]}")
print(f"Transaction output: {transaction.outputs[0][1]}")
print(f"Transaction fee: {round(transaction.inputs[0][1] - transaction.outputs[0][1],2)}")
print(f"Transaction sender: \n{transaction.inputs[0][0]}")
print(f"Transaction recipient: \n{transaction.outputs[0][0]}")
print(f"Transaction signature: \n{transaction.sigs}")
def pendingTransactions(self): def pendingTransactions(self):
transactions = utilityHelper.loadFile("../data/transaction_pool.dat") transactions = utilityHelper.loadFile("../data/transaction_pool.dat")
total = 0 total = 0
@ -123,7 +142,7 @@ def pendingTransactions(self):
print(f"---------------------------------------{str(user_input)}-------------------------------------------") print(f"---------------------------------------{str(user_input)}-------------------------------------------")
print(f"Transaction input: {user_transactions.get(user_input).inputs[0][1]}") print(f"Transaction input: {user_transactions.get(user_input).inputs[0][1]}")
print(f"Transaction output: {user_transactions.get(user_input).outputs[0][1]}") print(f"Transaction output: {user_transactions.get(user_input).outputs[0][1]}")
print(f"Transaction fees: {user_transactions.get(user_input).inputs[0][1] - user_transactions.get(user_input).outputs[0][1]}") print(f"Transaction fees: {round(user_transactions.get(user_input).inputs[0][1] - user_transactions.get(user_input).outputs[0][1],2)}")
print(f"Transaction sender: \n{user_transactions.get(user_input).inputs[0][0]}") print(f"Transaction sender: \n{user_transactions.get(user_input).inputs[0][0]}")
print(f"Transaction recipient: \n{user_transactions.get(user_input).outputs[0][0]}") print(f"Transaction recipient: \n{user_transactions.get(user_input).outputs[0][0]}")
print(f"---------------------------------------END-------------------------------------------") print(f"---------------------------------------END-------------------------------------------")
@ -143,21 +162,33 @@ def pendingTransactions(self):
amount = input(">>: ") amount = input(">>: ")
try: try:
amount = float(amount) amount = float(amount)
amount = round(amount, 2)
except: except:
utilityHelper.clearScreen() utilityHelper.clearScreen()
print("Wrong input, try again") print("Wrong input, try again")
return return
if amount <= 0:
utilityHelper.clearScreen()
print(f"{utilityHelper.warningMessage('Transaction value needs to be above zero')}")
return
print("Enter a new fee") print("Enter a new fee")
fee = input(">>: ") fee = input(">>: ")
try: try:
fee = float(fee) fee = float(fee)
fee = round(fee, 2)
except: except:
utilityHelper.clearScreen() utilityHelper.clearScreen()
print("Wrong input, try again") print("Wrong input, try again")
return return
if fee < 0:
utilityHelper.clearScreen()
print(f"{utilityHelper.warningMessage('Transaction fee needs to be above zero or above')}")
return
if amount + fee > taskHelper.getBalanceWithOutgoingPool(self, taskHelper.getBalance(self)): if amount + fee > taskHelper.getBalanceWithOutgoingPool(self, taskHelper.getBalance(self)):
utilityHelper.clearScreen() utilityHelper.clearScreen()
print("You dont have enough money") print("You dont have enough money")