Esempio n. 1
0
        public static byte[] GetPublicKey(this Protocol.Transaction transaction)
        {
            if (transaction.Signature.Count > 0)
            {
                try
                {
                    return(ECKey.RecoverPubBytesFromSignature(
                               new ECDSASignature(transaction.Signature.ElementAt(0).ToByteArray()),
                               Crypto.Sha256.Hash(transaction.RawData.ToByteArray()), false));
                }
                catch (Exception)
                {
                    return(null);
                }
            }

            return(null);
        }
Esempio n. 2
0
 public TransactionMessage(Protocol.Transaction tx)
 {
     this.transaction = new TransactionCapsule(tx);
     this.type        = (byte)MessageTypes.MsgType.TX;
     this.data        = tx.ToByteArray();
 }
Esempio n. 3
0
        public static string GetTxid(this Protocol.Transaction transaction)
        {
            var txid = transaction.RawData.ToByteArray().ToSHA256Hash().ToHex();

            return(txid);
        }
Esempio n. 4
0
        public static byte[] DecryptByTransaction(this string data, Protocol.Transaction transaction)
        {
            var publicKey = transaction.GetPublicKey();

            return(publicKey == null ? null : data.DecryptByPublicKey(publicKey));
        }