public static String GenerateTransactionString(List <Transaction> transactions) { int count = transactions.Count; List <string> previousTreeLayer = new List <string>(); foreach (Transaction transaction in transactions) { previousTreeLayer.Add(transaction.TransactionID); } List <string> treeLayer = previousTreeLayer; while (count > 1) { treeLayer = new List <string>(); for (int i = 1; i < previousTreeLayer.Count; i++) { treeLayer.Add(SecurityUtil.ApplySha256(previousTreeLayer[i - 1] + previousTreeLayer[i])); } count = treeLayer.Count; previousTreeLayer = treeLayer; } string transactionAsString = (treeLayer.Count == 1) ? treeLayer[0] : ""; return(transactionAsString); }
public TransactionOutput(AsymmetricKeyParameter receiver, float amount, string parentTransactionId) { this.Receiver = receiver; this.Amount = amount; this.ParentTransactionId = parentTransactionId; this.Id = SecurityUtil.ApplySha256(SecurityUtil.GetPublicKeyBase64(receiver) + amount.ToString() + parentTransactionId); }