module Cooked.MockChain.GenerateTx.Common
( throwOnToCardanoErrorOrApply,
throwOnToCardanoError,
)
where
import Control.Monad.Except
import Cooked.MockChain.BlockChain
import Ledger.Tx qualified as Ledger
throwOnToCardanoErrorOrApply :: (MonadError MockChainError m) => String -> (a -> b) -> Either Ledger.ToCardanoError a -> m b
throwOnToCardanoErrorOrApply :: forall (m :: * -> *) a b.
MonadError MockChainError m =>
String -> (a -> b) -> Either ToCardanoError a -> m b
throwOnToCardanoErrorOrApply String
errorMsg a -> b
f = (ToCardanoError -> m b)
-> (a -> m b) -> Either ToCardanoError a -> m b
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (MockChainError -> m b
forall a. MockChainError -> m a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (MockChainError -> m b)
-> (ToCardanoError -> MockChainError) -> ToCardanoError -> m b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ToCardanoError -> MockChainError
MCEToCardanoError String
errorMsg) (b -> m b
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return (b -> m b) -> (a -> b) -> a -> m b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> b
f)
throwOnToCardanoError :: (MonadError MockChainError m) => String -> Either Ledger.ToCardanoError a -> m a
throwOnToCardanoError :: forall (m :: * -> *) a.
MonadError MockChainError m =>
String -> Either ToCardanoError a -> m a
throwOnToCardanoError = (String -> (a -> a) -> Either ToCardanoError a -> m a)
-> (a -> a) -> String -> Either ToCardanoError a -> m a
forall a b c. (a -> b -> c) -> b -> a -> c
flip String -> (a -> a) -> Either ToCardanoError a -> m a
forall (m :: * -> *) a b.
MonadError MockChainError m =>
String -> (a -> b) -> Either ToCardanoError a -> m b
throwOnToCardanoErrorOrApply a -> a
forall a. a -> a
id