Exemplo n.º 1
0
        public static bool Validate(Transaction transaction)
        {
            var outputTotal = transaction.OutputMap.Values.Sum();

            if (transaction.Input.Amount != outputTotal)
            {
                Logger.Info($"Invalid transaction from {transaction.Input.Address}");
                return(false);
            }
            if (!EllipticCurve.VerifySignature(publicKey: transaction.Input.Address, data: transaction.OutputMap.SerializeObject(), signature: transaction.Input.Signature))
            {
                Logger.Info($"Invalid signature from {transaction.Input.Address}");
                return(false);
            }
            return(true);
        }