-- | -- Module : ZcashHaskell.Utils -- Copyright : Vergara Technologies (c)2023 -- License : BOSL -- -- Maintainer : rene@vergara.network -- Stability : experimental -- Portability : unknown -- -- A set of functions to assist in the handling of elements of the Zcash protocol, allowing for decoding of memos, addresses and viewing keys. -- module ZcashHaskell.Utils where import C.Zcash ( rustWrapperBech32Decode , rustWrapperF4Jumble , rustWrapperF4UnJumble ) import qualified Data.ByteString as BS import Foreign.Rust.Marshall.Variable import ZcashHaskell.Types -- | Decode the given bytestring using Bech32 decodeBech32 :: BS.ByteString -> RawData decodeBech32 = withPureBorshVarBuffer . rustWrapperBech32Decode -- | Apply the F4Jumble transformation to the given bytestring f4Jumble :: BS.ByteString -> BS.ByteString f4Jumble = withPureBorshVarBuffer . rustWrapperF4Jumble -- | Apply the inverse F4Jumble transformation to the given bytestring f4UnJumble :: BS.ByteString -> BS.ByteString f4UnJumble = withPureBorshVarBuffer . rustWrapperF4UnJumble