module arch.node.engines.mempool_worker_environment; import prelude open; import arch.node.engines.shard_messages open; import arch.node.engines.executor_messages open; import arch.node.engines.mempool_worker_messages open; import arch.node.types.engine_environment open; import arch.node.types.identities open; import arch.node.types.anoma_message as Anoma open; type MempoolWorkerLocalState := mk@{ batch_number : BatchNumber; transactions : Map TxFingerprint (TransactionCandidate KVSKey KVSKey Executable); transactionEngines : Map EngineID TxFingerprint; locks_acquired : List (Pair EngineID KVSLockAcquiredMsg); seen_all_writes : TxFingerprint; seen_all_reads : TxFingerprint; execution_summaries : Map TxFingerprint ExecutorFinishedMsg; gensym : TxFingerprint; }; syntax alias MempoolWorkerMailboxState := Unit; syntax alias MempoolWorkerTimerHandle := Unit; MempoolWorkerEnv : Type := EngineEnv MempoolWorkerLocalState MempoolWorkerMailboxState MempoolWorkerTimerHandle Anoma.Msg; module mempool_worker_environment_example; mempoolWorkerEnv : MempoolWorkerEnv := EngineEnv.mk@{ localState := MempoolWorkerLocalState.mk@{ batch_number := 0; transactions := Map.empty; transactionEngines := Map.empty; locks_acquired := []; seen_all_writes := 0; seen_all_reads := 0; execution_summaries := Map.empty; gensym := 0; }; mailboxCluster := Map.empty; acquaintances := Set.empty; timers := []; }; end;