mirror of https://github.com/voidlizard/hbs2
44 lines
1.0 KiB
Haskell
44 lines
1.0 KiB
Haskell
{-# Language AllowAmbiguousTypes #-}
|
|
module RefChan where
|
|
|
|
import HBS2.Prelude.Plated
|
|
|
|
import HBS2.Actors.Peer
|
|
import HBS2.Base58
|
|
import HBS2.Clock
|
|
import HBS2.Data.Types.Refs
|
|
import HBS2.Net.Auth.Credentials
|
|
import HBS2.Net.Proto.RefChan
|
|
import HBS2.Net.Proto.Types
|
|
|
|
import HBS2.System.Logger.Simple
|
|
|
|
import PeerTypes
|
|
import PeerConfig
|
|
|
|
import Control.Monad
|
|
|
|
|
|
data RefChanWorkerEnv e = RefChanWorkerEnv
|
|
|
|
refChanWorkerEnv :: forall m e . MonadIO m
|
|
=> PeerConfig
|
|
-> m (RefChanWorkerEnv e)
|
|
|
|
refChanWorkerEnv _ = pure $ RefChanWorkerEnv @e
|
|
|
|
refChanWorker :: forall e s m . ( MonadIO m, MyPeer e
|
|
, HasStorage m
|
|
, Signatures s
|
|
, s ~ Encryption e
|
|
, IsRefPubKey s
|
|
, Pretty (AsBase58 (PubKey 'Sign s))
|
|
)
|
|
=> RefChanWorkerEnv e
|
|
-> m ()
|
|
|
|
refChanWorker _ = forever do
|
|
pause @'Seconds 10
|
|
debug "I'm refchan worker"
|
|
|