-- | Packing utilities. module Lorentz.Pack ( lPackValue , lUnpackValue ) where import Data.Constraint ((\\)) import Lorentz.Constraints import Michelson.Interpret.Pack import Michelson.Interpret.Unpack import Michelson.Typed lPackValue :: forall a. (NicePackedValue a) => a -> ByteString lPackValue = packValue' . toVal \\ nicePackedValueEvi @a lUnpackValue :: forall a. (NiceUnpackedValue a) => ByteString -> Either UnpackError a lUnpackValue = fmap fromVal . unpackValue' \\ niceUnpackedValueEvi @a