/// <summary> /// Encodes data in plain Base58, without any checksum. /// </summary> /// <param name="data">The data to be encoded</param> /// <returns></returns> public static string EncodePlain(ByteString data) { // Decode byte[] to BigInteger var intData = data.Aggregate <byte, BigInteger>(0, (current, t) => current * 256 + t); // Encode BigInteger to Base58 string var result = string.Empty; while (intData > 0) { var remainder = (int)(intData % 58); intData /= 58; result = Digits[remainder] + result; } // Append `1` for each leading 0 byte for (var i = 0; i < data.Length && data[i] == 0; i++) { result = '1' + result; } return(result); }