예제 #1
0
        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);
 }