private PublicKey?ParseSecp256k1PublicKey(PublicKey publicKey) { byte[]? keyBytes = null; //todo: try to parse bech32 from publicKey.Value if (keyBytes == null) { try { keyBytes = ByteArrayExtensions.ParseBase64(publicKey.Value); } catch { // ignored } } if (keyBytes == null) { try { keyBytes = ByteArrayExtensions.ParseBase64(publicKey.Value); } catch { // ignored } } if (keyBytes == null) { return(null); } if (Context.Instance.TryCreatePubKey(keyBytes, out var compressed, out var ecPublicKey)) { var compressedBytes = ecPublicKey !.ToBytes(true); return(new PublicKey(Secp256k1PublicKeyType, compressedBytes.ToBase64String())); } return(null); }
public override object?ReadJson(JsonReader reader, Type objectType, object?existingValue, JsonSerializer serializer) { var deserializedString = serializer.Deserialize <string>(reader); return(ByteArrayExtensions.ParseBase64(deserializedString)); }
private static byte[]? ParseBase64(string str) => ByteArrayExtensions.ParseBase64(str);