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); }
public TransactionMessage(Protocol.Transaction tx) { this.transaction = new TransactionCapsule(tx); this.type = (byte)MessageTypes.MsgType.TX; this.data = tx.ToByteArray(); }
public static string GetTxid(this Protocol.Transaction transaction) { var txid = transaction.RawData.ToByteArray().ToSHA256Hash().ToHex(); return(txid); }
public static byte[] DecryptByTransaction(this string data, Protocol.Transaction transaction) { var publicKey = transaction.GetPublicKey(); return(publicKey == null ? null : data.DecryptByPublicKey(publicKey)); }