fixed reward transactions added out pool balance
This commit is contained in:
parent
e41127bd82
commit
a364b07bc9
@ -157,7 +157,9 @@ class MenuHelper:
|
|||||||
print("TODO")
|
print("TODO")
|
||||||
|
|
||||||
case "Check balance":
|
case "Check balance":
|
||||||
print(f"Your balance is: {taskHelper.getBalance(self)}")
|
balance = taskHelper.getBalance(self)
|
||||||
|
print(f"Your balance is: {balance}")
|
||||||
|
print(f"Your balance after verification of outgoing transactions: {taskHelper.getBalanceWithOutgoingPool(self, balance)}")
|
||||||
|
|
||||||
case "Check the pool":
|
case "Check the pool":
|
||||||
transactions = utilityHelper.loadFile("../data/transaction_pool.dat")
|
transactions = utilityHelper.loadFile("../data/transaction_pool.dat")
|
||||||
|
@ -41,7 +41,7 @@ def transaction(self):
|
|||||||
|
|
||||||
print(f"Processing transaction of {amount + fee} coins, {receiver} will receive {amount} coins")
|
print(f"Processing transaction of {amount + fee} coins, {receiver} will receive {amount} coins")
|
||||||
|
|
||||||
if amount + fee > getBalance(self):
|
if amount + fee > getBalanceWithOutgoingPool(self, getBalance(self)):
|
||||||
print("You dont have enough money")
|
print("You dont have enough money")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@ -222,11 +222,19 @@ def exploreBlocks(self):
|
|||||||
x = 0
|
x = 0
|
||||||
for transaction in blocks[user_input].data:
|
for transaction in blocks[user_input].data:
|
||||||
x += 1
|
x += 1
|
||||||
|
if transaction.type == 1:
|
||||||
|
input_amount = 0
|
||||||
|
input_user = "Reward"
|
||||||
|
fee = 0
|
||||||
|
else:
|
||||||
|
input_user = transaction.inputs[0][0]
|
||||||
|
input_amount = transaction.inputs[0][1]
|
||||||
|
fee = input_amount - transaction.outputs[0][1]
|
||||||
print(f"---------------------------------------{x}-------------------------------------------")
|
print(f"---------------------------------------{x}-------------------------------------------")
|
||||||
print(f"Transaction input: {transaction.type == 1 and 'reward' or transaction.inputs[0][1]}")
|
print(f"Transaction input: {input_amount}")
|
||||||
print(f"Transaction output: {transaction.outputs[0][1]}")
|
print(f"Transaction output: {transaction.outputs[0][1]}")
|
||||||
print(f"Transaction fees: {transaction.type == 1 and 0 or transaction.inputs[0][1] - transaction.outputs[0][1]}")
|
print(f"Transaction fees: {fee}")
|
||||||
print(f"Transaction sender: \n{transaction.inputs[0][0]}")
|
print(f"Transaction sender: \n{input_user}")
|
||||||
print(f"Transaction recipient: \n{transaction.outputs[0][0]}")
|
print(f"Transaction recipient: \n{transaction.outputs[0][0]}")
|
||||||
print("-----------------------------------------------------------------------------------")
|
print("-----------------------------------------------------------------------------------")
|
||||||
case "3":
|
case "3":
|
||||||
@ -244,10 +252,17 @@ def getBalance(self):
|
|||||||
for transaction in block.data:
|
for transaction in block.data:
|
||||||
if transaction.outputs[0][0] == self.user.public_ser:
|
if transaction.outputs[0][0] == self.user.public_ser:
|
||||||
balance += transaction.outputs[0][1]
|
balance += transaction.outputs[0][1]
|
||||||
elif transaction.inputs[0][0] == self.user.public_ser:
|
elif transaction.type != 1 and transaction.inputs[0][0] == self.user.public_ser:
|
||||||
balance -= transaction.inputs[0][1]
|
balance -= transaction.inputs[0][1]
|
||||||
return balance
|
return balance
|
||||||
|
|
||||||
|
def getBalanceWithOutgoingPool(self, balance):
|
||||||
|
transactions = utilityHelper.loadFile("../data/transaction_pool.dat")
|
||||||
|
for transaction in transactions:
|
||||||
|
if transaction.type != 1 and transaction.inputs[0][0] == self.user.public_ser:
|
||||||
|
balance -= transaction.inputs[0][1]
|
||||||
|
return balance
|
||||||
|
|
||||||
def getPersonalTransactions(self):
|
def getPersonalTransactions(self):
|
||||||
blocks = utilityHelper.loadFile("../data/ledger.dat")
|
blocks = utilityHelper.loadFile("../data/ledger.dat")
|
||||||
total = 0
|
total = 0
|
||||||
@ -255,13 +270,21 @@ def getPersonalTransactions(self):
|
|||||||
total_output = 0
|
total_output = 0
|
||||||
for block in blocks:
|
for block in blocks:
|
||||||
for transaction in block.data:
|
for transaction in block.data:
|
||||||
if transaction.outputs[0][0] == self.user.public_ser or transaction.inputs[0][0] == self.user.public_ser:
|
if transaction.outputs[0][0] == self.user.public_ser or (transaction.type == 0 and transaction.inputs[0][0] == self.user.public_ser):
|
||||||
total += 1
|
total += 1
|
||||||
|
if transaction.type == 1:
|
||||||
|
input_amount = 0
|
||||||
|
input_user = "Reward"
|
||||||
|
fee = 0
|
||||||
|
else:
|
||||||
|
input_user = transaction.inputs[0][0]
|
||||||
|
input_amount = transaction.inputs[0][1]
|
||||||
|
fee = input_amount - transaction.outputs[0][1]
|
||||||
print(f"---------------------------------------{total}-------------------------------------------")
|
print(f"---------------------------------------{total}-------------------------------------------")
|
||||||
print(f"Transaction input: {transaction.inputs[0][1]}")
|
print(f"Transaction input: {input_amount}")
|
||||||
print(f"Transaction output: {transaction.outputs[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 fees: {fee}")
|
||||||
print(f"Transaction sender: \n{transaction.inputs[0][0]}")
|
print(f"Transaction sender: \n{input_user}")
|
||||||
print(f"Transaction recipient: \n{transaction.outputs[0][0]}")
|
print(f"Transaction recipient: \n{transaction.outputs[0][0]}")
|
||||||
|
|
||||||
if transaction.outputs[0][0] == self.user.public_ser:
|
if transaction.outputs[0][0] == self.user.public_ser:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user