marlowe-runtime-0.0.5: Runtime system for running Marlowe financial contracts on the Cardano Computation Layer
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.Marlowe.Runtime.Proxy

Documentation

data MarloweProxy m Source #

Constructors

MarloweProxy 

Fields

data MarloweProxyInProc m Source #

Constructors

MarloweProxyInProc 

Fields

proxyInProc :: MonadUnliftIO m => Component m (RouterInProc m) (MarloweProxyInProc m) Source #

proxy :: (MonadUnliftIO m, MonadEvent r s m, MonadFail m) => Component m (Router r (ResourceT m)) (MarloweProxy m) Source #

data Router r m Source #

Constructors

Router 

Fields

  • connectMarloweSync :: m (Channel (Handshake MarloweSync) 'AsClient ('StInit 'StInit) m, r)
     
  • connectMarloweHeaderSync :: m (Channel (Handshake MarloweHeaderSync) 'AsClient ('StInit 'StIdle) m, r)
     
  • connectMarloweQuery :: m (Channel (Handshake MarloweQuery) 'AsClient ('StInit 'StReq) m, r)
     
  • connectMarloweLoad :: m (Channel (Handshake MarloweLoad) 'AsClient ('StInit ('StProcessing 'RootNode)) m, r)
     
  • connectMarloweTransfer :: m (Channel (Handshake MarloweTransfer) 'AsClient ('StInit 'StIdle) m, r)
     
  • connectTxJob :: m (Channel (Handshake (Job MarloweTxCommand)) 'AsClient ('StInit 'StInit) m, r)
     
  • connectContractQuery :: m (Channel (Handshake (Query ContractRequest)) 'AsClient ('StInit 'StReq) m, r)
     

data RouterInProc m Source #

Constructors

RouterInProc 

Fields

server :: (MonadFail m, MonadEvent r s m) => Bool -> Router r m -> MarloweRuntimeServer m () Source #

serverInProc :: Monad m => RouterInProc m -> MarloweRuntimeServerDirect (ResourceT m) () Source #

useServerSource :: Monad m => (forall p q a. Functor p => (forall x. p x -> q x) -> server p a -> server q a) -> ServerSource server m () -> ResourceT m (server (ResourceT m) ()) Source #

marloweSyncNext :: PeerHasAgency pr st -> Message MarloweSync st st' -> NextAgency MarloweSync pr st st' Source #

marloweHeaderSyncNext :: PeerHasAgency pr st -> Message MarloweHeaderSync st st' -> NextAgency MarloweHeaderSync pr st st' Source #

queryNext :: Request req => PeerHasAgency pr st -> Message (Query req) st st' -> NextAgency (Query req) pr st st' Source #

loadNext :: PeerHasAgency pr st -> Message MarloweLoad st st' -> NextAgency MarloweLoad pr st st' Source #

transferNext :: PeerHasAgency pr st -> Message MarloweTransfer st st' -> NextAgency MarloweTransfer pr st st' Source #

jobNext :: Command cmd => PeerHasAgency pr st -> Message (Job cmd) st st' -> NextAgency (Job cmd) pr st st' Source #

data NextAgency ps pr (st :: ps) (st' :: ps) where Source #

Constructors

NextCall :: PeerHasAgency 'AsServer st' -> NextAgency ps 'AsClient st st' 
NextCast :: PeerHasAgency pr st' -> NextAgency ps 'AsClient st st' 
NextClose :: NobodyHasAgency st' -> NextAgency ps 'AsClient st st' 
NextRespond :: PeerHasAgency 'AsClient st' -> NextAgency ps 'AsServer st st' 
NextReceive :: PeerHasAgency pr st' -> NextAgency ps 'AsServer st st' 
NextClosed :: NobodyHasAgency st' -> NextAgency ps 'AsServer st st' 

withHandshake :: forall ps pr st r s m. (HasSignature ps, MonadFail m, MonadEvent r s m) => Bool -> PeerHasAgency pr st -> m (Channel (Handshake ps) 'AsClient ('StInit st) m, r) -> (forall pr' st' st''. PeerHasAgency pr' st' -> Message ps st' st'' -> NextAgency ps pr' st' st'') -> m (PeerTraced ps 'AsServer st m ()) Source #

liftHandshake :: LiftProtocol ps (Handshake ps) 'StLift Source #

proxyProtocol :: Monad m => PeerHasAgency pr st -> Channel ps 'AsClient st m -> (forall pr' st' st''. PeerHasAgency pr' st' -> Message ps st' st'' -> NextAgency ps pr' st' st'') -> PeerTraced ps 'AsServer st m () Source #

toAgency :: NextAgency ps pr st st' -> Either (NobodyHasAgency st') (SomePeerHasAgency st') Source #