/// <summary> /// Commits an entry to the Factom blockchain. Must wait 10 seconds if succeeds then call RevealEntry /// </summary> /// <param name="entry">Entry to be committed</param> /// <param name="name">Name of entry credit wallet</param> /// <returns>ChainID of commited Entry</returns> public static byte[] CommitEntry(DataStructs.EntryData entry, string name) { var byteList = new List <byte>(); // 1 byte version byteList.Add(0); // 6 byte milliTimestamp (truncated unix time) byteList.AddRange(Times.MilliTime()); // 32 byte Entry Hash byteList.AddRange(Entries.HashEntry(entry)); // 1 byte number of entry credits to pay var cost = EntryCost(entry); // TODO: check errors byteList.Add(BitConverter.GetBytes(cost)[0]); var com = new WallerCommit(); com.Message = Arrays.ByteArrayToHex(byteList.ToArray()); //Hex encoded string on bytelist var json = JsonConvert.SerializeObject(com); Console.WriteLine("CE Json = " + json); //TODO: Remove var req = new RestRequest("/commit-entry/{name}", Method.POST); req.RequestFormat = DataFormat.Json; req.AddParameter("application/json", json, ParameterType.RequestBody); req.AddUrlSegment("name", name); var resp = StaticValues.clientD.Execute(req); if (resp.StatusCode != HttpStatusCode.OK) { throw new FactomEntryException("Entry Commit Failed. Message: " + resp.ErrorMessage); } //Console.WriteLine("CommitEntry Resp = " + resp.StatusCode + "|" + resp.StatusCode); if (entry.ExtIDs != null) { return(Entries.ChainIdOfFirstEntry(entry)); } return(entry.ChainId); }
/// <summary> /// Commits an entry to the Factom blockchain. Must wait 10 seconds if succeeds then call RevealEntry /// </summary> /// <param name="entry">Entry to be committed</param> /// <param name="name">Name of entry credit wallet</param> /// <returns>ChainID of commited Entry</returns> public static byte[] CommitEntry(DataStructs.EntryData entry, string name) { var byteList = new List<byte>(); // 1 byte version byteList.Add(0); // 6 byte milliTimestamp (truncated unix time) byteList.AddRange(Times.MilliTime()); // 32 byte Entry Hash byteList.AddRange(Entries.HashEntry(entry)); // 1 byte number of entry credits to pay var cost = EntryCost(entry); // TODO: check errors byteList.Add(BitConverter.GetBytes(cost)[0]); var com = new WallerCommit(); com.Message = Arrays.ByteArrayToHex(byteList.ToArray()); //Hex encoded string on bytelist var json = JsonConvert.SerializeObject(com); Console.WriteLine("CE Json = " + json); //TODO: Remove var req = new RestRequest("/commit-entry/{name}", Method.POST); req.RequestFormat = DataFormat.Json; req.AddParameter("application/json", json, ParameterType.RequestBody); req.AddUrlSegment("name", name); var resp = StaticValues.clientD.Execute(req); if (resp.StatusCode != HttpStatusCode.OK) { throw new FactomEntryException("Entry Commit Failed. Message: " + resp.ErrorMessage); } //Console.WriteLine("CommitEntry Resp = " + resp.StatusCode + "|" + resp.StatusCode); if (entry.ExtIDs != null) { return Entries.ChainIdOfFirstEntry(entry); } return entry.ChainId; }