public async Task <string> Sign(string signerAddress, string message) { var converter = new Nethereum.Hex.HexConvertors.HexUTF8StringConvertor(); var signature = await _web3.Eth.Sign.SendRequestAsync(signerAddress, converter.ConvertToHex(message)); return(signature); }
public async Task <ITransationData> PriKeyQueryAsync(string gethConnectionUrl, IndexDBContext dbContext, ITransationData transationData, string ID, Func <ITransationData, IndexDB.IndexDBs, ITransationData> requiredData) { string IdPhotoData = null; //从索引数据库拿到交易哈希列表字符串 var dataIndex = await GetTxHashFormIndexDBAsnyc(dbContext, ID); //拆分成交易哈希字符串数字 string[] TxHashs = dataIndex.TransationHash.Trim().Split(' '); //使用交易哈希得到私链中保存的图片数据片段 var web3 = new Web3Geth(gethConnectionUrl); foreach (var Txhash in TxHashs) { var result = await web3.Eth.Transactions .GetTransactionByHash .SendRequestAsync(Txhash); //拼接片段 IdPhotoData += new Nethereum.Hex.HexConvertors .HexUTF8StringConvertor() .ConvertFromHex(result.Input); } //将数据转换成传输模型 transationData.IdPhotoData = IdPhotoData; transationData.ID = dataIndex.ID; transationData.Address = dataIndex.AccountAddress; //如果没有委托,直接返回 if (requiredData == null) { return(transationData); } //使用委托使得用户可以实现传输模型接口,自定义需要获得的数据 transationData = requiredData.Invoke(transationData, dataIndex); return(transationData); }
public static string bytesToString(string[] text) { string title = ""; if (text == null) { return(title); } var hexConverter = new Nethereum.Hex.HexConvertors.HexUTF8StringConvertor(); for (int i = 0; i < text.Length; i++) { title += hexConverter.ConvertFromHex(text[i]); } return(title); }
public static List <string> stringToBytes(string text, int len = 0) { var bytesTitle = new List <string>(); if (text == null) { text = ""; } var hexConverter = new Nethereum.Hex.HexConvertors.HexUTF8StringConvertor(); var data = hexConverter.ConvertToHex(text); data = data.Substring(2); if (len <= 0) { bytesTitle.Add(data); return(bytesTitle); } var padding = (64 - (data.Length % 64)); data = data.PadRight(data.Length + padding, '0'); var rx = new Regex(".{1,64}"); MatchCollection matches = rx.Matches(data); var matchEnumerator = matches.GetEnumerator(); for (int i = 0; i < matches.Count; i++) { matchEnumerator.MoveNext(); bytesTitle.Add("0x" + matchEnumerator.Current as string); } while (bytesTitle.Count < len) { bytesTitle.Add("0x00"); } Debug.Log("bytesTitle: " + bytesTitle.ToArray()); return(bytesTitle); }