2023-08-17 15:02:32 +00:00
|
|
|
-- |
|
|
|
|
-- 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.
|
|
|
|
--
|
2023-06-14 15:53:29 +00:00
|
|
|
module ZcashHaskell.Utils where
|
2023-05-04 20:26:49 +00:00
|
|
|
|
|
|
|
import C.Zcash
|
|
|
|
( rustWrapperBech32Decode
|
|
|
|
, rustWrapperF4Jumble
|
|
|
|
, rustWrapperF4UnJumble
|
|
|
|
)
|
|
|
|
import qualified Data.ByteString as BS
|
|
|
|
import Foreign.Rust.Marshall.Variable
|
2023-06-14 15:53:29 +00:00
|
|
|
import ZcashHaskell.Types
|
2023-05-04 20:26:49 +00:00
|
|
|
|
|
|
|
-- | 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
|