diff --git a/blockchain/transaction.go b/blockchain/transaction.go index b813868..c3977d5 100644 --- a/blockchain/transaction.go +++ b/blockchain/transaction.go @@ -105,5 +105,5 @@ func (t *Transaction) InputsEqualOutputs(other ...*Transaction) bool { outAmount += output.Amount } - return (int(outAmount) - int(inAmount)) != 0 + return (int(outAmount) - int(inAmount)) == 0 } diff --git a/blockchain/validation.go b/blockchain/validation.go index 8668949..f7db8d2 100644 --- a/blockchain/validation.go +++ b/blockchain/validation.go @@ -49,7 +49,7 @@ func (bc *BlockChain) ValidTransaction(t *Transaction) (bool, TransactionCode) { } // Check that output to sender in input is equal to outputs in t - if input.InputsEqualOutputs(t) { + if !input.InputsEqualOutputs(t) { return false, Overspend } @@ -94,7 +94,7 @@ func (bc *BlockChain) ValidBlock(b *Block) (bool, BlockCode) { for j, trB := range b.Transactions { if (i != j) && (trA.Input.Hash == trB.Input.Hash) { inputTr := bc.GetInputTransaction(trA) - if inputTr.InputsEqualOutputs(trA, trB) { + if !inputTr.InputsEqualOutputs(trA, trB) { return false, DoubleSpend } }