diff --git a/goodchain/src/helpers/BlockHelper.py b/goodchain/src/helpers/BlockHelper.py index 9ae2e7a..336e1bb 100644 --- a/goodchain/src/helpers/BlockHelper.py +++ b/goodchain/src/helpers/BlockHelper.py @@ -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!") diff --git a/goodchain/src/helpers/MenuHelper.py b/goodchain/src/helpers/MenuHelper.py index 0ae9acd..18d8542 100644 --- a/goodchain/src/helpers/MenuHelper.py +++ b/goodchain/src/helpers/MenuHelper.py @@ -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": diff --git a/goodchain/src/helpers/TaskHelper.py b/goodchain/src/helpers/TaskHelper.py index dadf4a3..f19dddb 100644 --- a/goodchain/src/helpers/TaskHelper.py +++ b/goodchain/src/helpers/TaskHelper.py @@ -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]}") diff --git a/goodchain/src/helpers/TransactionHelper.py b/goodchain/src/helpers/TransactionHelper.py index e2cf4d3..5576c4b 100644 --- a/goodchain/src/helpers/TransactionHelper.py +++ b/goodchain/src/helpers/TransactionHelper.py @@ -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")