diff --git a/src/ZGoTx.hs b/src/ZGoTx.hs index 30e7ef7..bf7b3d8 100644 --- a/src/ZGoTx.hs +++ b/src/ZGoTx.hs @@ -17,6 +17,7 @@ import GHC.Generics import Text.Megaparsec hiding (State) import Text.Megaparsec.Char import ZcashHaskell.Orchard +import ZcashHaskell.Sapling (isValidShieldedAddress) -- | Type to model a ZGo transaction data ZGoTx = ZGoTx @@ -133,9 +134,9 @@ pSaplingAddress :: Parser MemoToken pSaplingAddress = do string "zs" a <- some alphaNumChar - if length a /= 76 - then fail "Failed to parse Sapling address" - else pure $ Address $ T.pack ("zs" <> a) + if isValidShieldedAddress (E.encodeUtf8 $ "zs" <> T.pack a) + then pure $ Address $ T.pack ("zs" <> a) + else fail "Failed to parse Sapling address" pUnifiedAddress :: Parser MemoToken pUnifiedAddress = do