module arch.node.engines.mempool_worker;

import prelude open;
import arch.node.types.engine open;

import arch.node.engines.mempool_worker_config open public;
import arch.node.engines.mempool_worker_messages open public;
import arch.node.engines.mempool_worker_environment open public;
import arch.node.engines.mempool_worker_behaviour open public;

import arch.node.types.anoma as Anoma open;

open mempool_worker_config_example;
open mempool_worker_environment_example;

MempoolWorkerEngine : Type :=
  Engine
    MempoolWorkerCfg
    MempoolWorkerLocalState
    MempoolWorkerMailboxState
    MempoolWorkerTimerHandle
    MempoolWorkerActionArguments
    Anoma.Msg
    Anoma.Cfg
    Anoma.Env;

exampleMempoolWorkerEngine : MempoolWorkerEngine :=
  mkEngine@{
    cfg := mempoolWorkerCfg;
    env := mempoolWorkerEnv;
    behaviour := mempoolWorkerBehaviour;
  };