using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tofvesson.Crypto; namespace Client { public class Transaction { public string fromAccount; public string toAccount; public string from; public string to; public decimal amount; public string meta; public Transaction(string from, string to, decimal amount, string meta, string fromAccount, string toAccount) { this.fromAccount = fromAccount; this.toAccount = toAccount; this.from = from; this.to = to; this.amount = amount; this.meta = meta; } public static Transaction Parse(string txData) { var data = txData.Split('&'); if (data.Length < 5 || !decimal.TryParse(data[4], out var amount)) throw new ParseException("String did not represent a transaction!"); return new Transaction( data[2].FromBase64String(), data[1].FromBase64String(), amount, data.Length == 6 ? data[5].FromBase64String() : null, data[3].FromBase64String(), data[1].FromBase64String() ); } } }