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:
fees[x] = 0
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
fees_list = list(fees.keys())
@ -278,7 +278,7 @@ def validateMinedBlock(self):
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.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.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!")

View File

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

View File

@ -64,7 +64,7 @@ def getPersonalTransactions(self):
else:
input_user = transaction.inputs[0][0]
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"Transaction input: {input_amount}")
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])
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):
transactions = utilityHelper.loadFile("../data/transaction_pool.dat")
total = 0
@ -123,7 +142,7 @@ def pendingTransactions(self):
print(f"---------------------------------------{str(user_input)}-------------------------------------------")
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 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 recipient: \n{user_transactions.get(user_input).outputs[0][0]}")
print(f"---------------------------------------END-------------------------------------------")
@ -143,21 +162,33 @@ def pendingTransactions(self):
amount = input(">>: ")
try:
amount = float(amount)
amount = round(amount, 2)
except:
utilityHelper.clearScreen()
print("Wrong input, try again")
return
if amount <= 0:
utilityHelper.clearScreen()
print(f"{utilityHelper.warningMessage('Transaction value needs to be above zero')}")
return
print("Enter a new fee")
fee = input(">>: ")
try:
fee = float(fee)
fee = round(fee, 2)
except:
utilityHelper.clearScreen()
print("Wrong input, try again")
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)):
utilityHelper.clearScreen()
print("You dont have enough money")