module Cooked.MockChain.GenerateTx.Common
( throwOnMaybe,
throwOnString,
throwOnToCardanoErrorOrApply,
throwOnToCardanoError,
)
where
import Control.Monad.Except
import Cooked.MockChain.BlockChain
import Ledger.Tx qualified as Ledger
throwOnString :: (MonadError MockChainError m) => String -> m a
throwOnString :: forall (m :: * -> *) a.
MonadError MockChainError m =>
String -> m a
throwOnString = MockChainError -> m a
forall a. MockChainError -> m a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (MockChainError -> m a)
-> (String -> MockChainError) -> String -> m a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. GenerateTxError -> MockChainError
MCEGenerationError (GenerateTxError -> MockChainError)
-> (String -> GenerateTxError) -> String -> MockChainError
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> GenerateTxError
GenerateTxErrorGeneral
throwOnMaybe :: (MonadError MockChainError m) => String -> Maybe a -> m a
throwOnMaybe :: forall (m :: * -> *) a.
MonadError MockChainError m =>
String -> Maybe a -> m a
throwOnMaybe String
errorMsg = m a -> (a -> m a) -> Maybe a -> m a
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (String -> m a
forall (m :: * -> *) a.
MonadError MockChainError m =>
String -> m a
throwOnString String
errorMsg) a -> m a
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return
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
. GenerateTxError -> MockChainError
MCEGenerationError (GenerateTxError -> MockChainError)
-> (ToCardanoError -> GenerateTxError)
-> ToCardanoError
-> MockChainError
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ToCardanoError -> GenerateTxError
ToCardanoError 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